Entra ID OAuth Application Redirect URI Modified
Identifies modifications to OAuth application redirect URIs (ReplyUrls) in Entra ID. Adding an attacker-controlled redirect URI to an existing trusted application allows interception of OAuth authorization codes when users authenticate through that application's normal login flow, enabling token theft without requiring a new application registration or consent event.
Elastic rule (View on GitHub)
1[metadata]
2creation_date = "2026/05/20"
3integration = ["azure"]
4maturity = "production"
5updated_date = "2026/05/20"
6
7[rule]
8author = ["Elastic", "descambiado"]
9description = """
10Identifies modifications to OAuth application redirect URIs (ReplyUrls) in Entra ID. Adding an
11attacker-controlled redirect URI to an existing trusted application allows interception of OAuth
12authorization codes when users authenticate through that application's normal login flow, enabling
13token theft without requiring a new application registration or consent event.
14"""
15false_positives = [
16 """
17 Developers adding localhost redirect URIs for local development environments.
18 CI/CD pipelines updating production redirect URIs during deployment.
19 Application owners adding redirect URIs for new platform support.
20 """,
21]
22from = "now-9m"
23index = ["logs-azure.auditlogs-*"]
24language = "kuery"
25license = "Elastic License v2"
26name = "Entra ID OAuth Application Redirect URI Modified"
27note = """## Triage and analysis
28
29### Investigating Entra ID OAuth Application Redirect URI Modified
30
31A redirect URI addition to an existing trusted application does not generate a consent event and does
32not require registering a new application -- both of which are commonly monitored. The modified
33application retains all existing user consents.
34
35#### Possible investigation steps
36
37- Identify the actor who modified the application (`azure.auditlogs.properties.initiated_by`) and
38 verify whether the change was authorized by the application owner or a change management ticket.
39- Review the specific URIs added by comparing `modifiedProperties.oldValue` and `newValue` for the
40 `ReplyUrls` field in the audit event's `target_resources`.
41- Geolocate and WHOIS the domain of any newly added URI -- hosting providers, recently registered
42 domains, or URL shorteners are strong indicators of compromise.
43- Check whether the actor recently became an owner of this application: look for
44 "Add owner to application" events in AuditLogs for the same application object ID.
45- Review the application's Graph API permissions -- applications with Mail, Files, or directory
46 scopes are the highest-value targets for redirect URI hijacking.
47
48### False positive analysis
49
50- Localhost and loopback URIs (`http://localhost:*`, `http://127.0.0.1:*`) added by developers are
51 expected in non-production applications. Verify the application's sensitivity before closing.
52- CI/CD-driven URI updates typically originate from service principal actors, not human users.
53
54### Response and remediation
55
56- Remove the unauthorized redirect URI via Entra ID > App registrations > Authentication.
57- Revoke all tokens issued to the application since the modification timestamp.
58- Review sign-in logs for the application for any sign-ins from unexpected sources after the change.
59- If the URI was externally controlled, treat as a full OAuth token compromise for all users of
60 the application and initiate token revocation and user notification.
61"""
62references = [
63 "https://learn.microsoft.com/en-us/entra/identity-platform/reply-url",
64 "https://www.microsoft.com/en-us/security/blog/2026/03/02/oauth-redirection-abuse-enables-phishing-malware-delivery/",
65]
66risk_score = 47
67rule_id = "8efcd3da-103b-4a65-8ab2-6a3a9df7ba8b"
68severity = "medium"
69tags = [
70 "Domain: Cloud",
71 "Domain: Identity",
72 "Data Source: Azure",
73 "Data Source: Microsoft Entra ID",
74 "Data Source: Microsoft Entra ID Audit Logs",
75 "Use Case: Identity and Access Audit",
76 "Tactic: Persistence",
77 "Tactic: Credential Access",
78 "Resources: Investigation Guide",
79]
80timestamp_override = "event.ingested"
81type = "query"
82
83query = '''
84data_stream.dataset: "azure.auditlogs" and
85azure.auditlogs.operation_name: "Update application" and
86event.outcome: ("Success" or "success") and
87azure.auditlogs.properties.target_resources.*.modified_properties.*.display_name: "AppAddress"
88'''
89
90[[rule.threat]]
91framework = "MITRE ATT&CK"
92
93[[rule.threat.technique]]
94id = "T1556"
95name = "Modify Authentication Process"
96reference = "https://attack.mitre.org/techniques/T1556/"
97
98[rule.threat.tactic]
99id = "TA0003"
100name = "Persistence"
101reference = "https://attack.mitre.org/tactics/TA0003/"
102
103[[rule.threat]]
104framework = "MITRE ATT&CK"
105
106[[rule.threat.technique]]
107id = "T1528"
108name = "Steal Application Access Token"
109reference = "https://attack.mitre.org/techniques/T1528/"
110
111[rule.threat.tactic]
112id = "TA0006"
113name = "Credential Access"
114reference = "https://attack.mitre.org/tactics/TA0006/"
Triage and analysis
Investigating Entra ID OAuth Application Redirect URI Modified
A redirect URI addition to an existing trusted application does not generate a consent event and does not require registering a new application -- both of which are commonly monitored. The modified application retains all existing user consents.
Possible investigation steps
- Identify the actor who modified the application (
azure.auditlogs.properties.initiated_by) and verify whether the change was authorized by the application owner or a change management ticket. - Review the specific URIs added by comparing
modifiedProperties.oldValueandnewValuefor theReplyUrlsfield in the audit event'starget_resources. - Geolocate and WHOIS the domain of any newly added URI -- hosting providers, recently registered domains, or URL shorteners are strong indicators of compromise.
- Check whether the actor recently became an owner of this application: look for "Add owner to application" events in AuditLogs for the same application object ID.
- Review the application's Graph API permissions -- applications with Mail, Files, or directory scopes are the highest-value targets for redirect URI hijacking.
False positive analysis
- Localhost and loopback URIs (
http://localhost:*,http://127.0.0.1:*) added by developers are expected in non-production applications. Verify the application's sensitivity before closing. - CI/CD-driven URI updates typically originate from service principal actors, not human users.
Response and remediation
- Remove the unauthorized redirect URI via Entra ID > App registrations > Authentication.
- Revoke all tokens issued to the application since the modification timestamp.
- Review sign-in logs for the application for any sign-ins from unexpected sources after the change.
- If the URI was externally controlled, treat as a full OAuth token compromise for all users of the application and initiate token revocation and user notification.
References
Related rules
- Entra ID Guest Account Promoted to Member
- Entra ID Device Registration with ROADtools Default OS Build
- Entra ID Kali365 Default User-Agent Detected
- Entra ID Domain Federation Configuration Change
- Entra ID Global Administrator Role Assigned