Skip to content

Fix Console API and Angular XSS security flaws#3076

Merged
CydeWeys merged 1 commit into
google:masterfrom
CydeWeys:security-audit-part2
Jun 24, 2026
Merged

Fix Console API and Angular XSS security flaws#3076
CydeWeys merged 1 commit into
google:masterfrom
CydeWeys:security-audit-part2

Conversation

@CydeWeys

@CydeWeys CydeWeys commented Jun 1, 2026

Copy link
Copy Markdown
Member

This commit addresses the following security vulnerabilities identified in the recent audit of the Console App and Backend APIs:

  1. Angular XSS: Removed unsafe [innerHTML] bindings across all console-webapp templates (Contact, Registrars, Registrar Details, Users List) in favor of standard Angular interpolation.
  2. Broken Access Control (IDOR): PasswordResetRequestAction and PasswordResetVerifyAction now explicitly verify that the target user's email belongs to the authorized registrarId.
  3. Missing Permission Check: ConsoleEppPasswordAction now explicitly checks for CONFIGURE_EPP_CONNECTION permission before updating the EPP password.
  4. Denial of Service (DoS): ConsoleBulkDomainAction now strictly limits the size of bulk domain lists to 500 domains to prevent thread exhaustion.
  5. Denial of Service (OOM): ConsoleHistoryDataAction now uses .setMaxResults(500) on JPA native queries to prevent eager loading of the entire database into memory.

Also removes an outdated Joda-Time migration reference from GEMINI.md.


This change is Reviewable

@CydeWeys CydeWeys force-pushed the security-audit-part2 branch 3 times, most recently from 4c0b7df to bae4dbf Compare June 18, 2026 20:39
@CydeWeys CydeWeys requested a review from ptkach June 18, 2026 20:39

@ptkach ptkach left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ptkach reviewed 18 files and all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on CydeWeys).

This commit addresses the following security vulnerabilities identified in the recent audit of the Console App and Backend APIs:

1. Angular XSS: Removed unsafe [innerHTML] bindings across all console-webapp templates (Contact, Registrars, Registrar Details, Users List) in favor of standard Angular interpolation.
2. Broken Access Control (IDOR): PasswordResetRequestAction and PasswordResetVerifyAction now explicitly verify that the target user's email belongs to the authorized registrarId.
3. Missing Permission Check: ConsoleEppPasswordAction now explicitly checks for CONFIGURE_EPP_CONNECTION permission before updating the EPP password.
4. Denial of Service (DoS): ConsoleBulkDomainAction now strictly limits the size of bulk domain lists (configurable, default 500) to prevent thread exhaustion.
5. Denial of Service (OOM): ConsoleHistoryDataAction now uses .setMaxResults() (configurable, default 500) on JPA native queries to prevent eager loading of the entire database into memory.

Makes the history query limit and bulk domain action limit configurable via RegistryConfig, allowing smaller limits to be used in tests to avoid heavy resource persistence.

Also removes an outdated Joda-Time migration reference from GEMINI.md.
@CydeWeys CydeWeys force-pushed the security-audit-part2 branch from bae4dbf to 059326e Compare June 24, 2026 19:47
@CydeWeys CydeWeys enabled auto-merge June 24, 2026 20:02
@CydeWeys CydeWeys added this pull request to the merge queue Jun 24, 2026
Merged via the queue into google:master with commit 7c23413 Jun 24, 2026
16 checks passed
@CydeWeys CydeWeys deleted the security-audit-part2 branch June 24, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants