Umbra Wiki weakness weakness/CWE-551
Back to wiki

CWE-551 — Incorrect Behavior Order: Authorization Before Parsing and Canonicalization

provenance: imported · CWE: CWE-551

CWE-551: Incorrect Behavior Order: Authorization Before Parsing and Canonicalization

MITRE CWE weakness

Kind Weakness
Abstraction Base
Status Incomplete
Likelihood of exploit

Description

If a web server does not fully parse requested URLs before it examines them for authorization, it may be possible for an attacker to bypass authorization protection.

For instance, the character strings /./ and / both mean current directory. If /SomeDirectory is a protected directory and an attacker requests /./SomeDirectory, the attacker may be able to gain access to the resource if /./ is not converted to / before the authorization check is performed.

Common consequences

  • Access Control: Bypass Protection Mechanism

Mitigations

Architecture and Design — URL Inputs should be decoded and canonicalized to the application's current internal representation before being validated and processed for authorization. Make sure that your application does not decode the same input twice. Such errors could be used to bypass allowlist schemes by introducing dangerous inputs after they have been checked.

References

  • CWE page: https://cwe.mitre.org/data/definitions/551.html
  • CWE list: https://cwe.mitre.org/data/index.html