CWE-566 · Słabość
Authorization Bypass Through User-Controlled SQL Primary Key
- Abstrakcja
- Wariant
- Status
- Niekompletny
- Dodano
- 19 lipca 2006
- Ostatnia zmiana
- 11 grudnia 2025
Opis
The product uses a database table that includes records that should not be accessible to an actor, but it executes a SQL statement with a primary key that can be controlled by that actor.
When a user can set a primary key to any value, then the user can modify the key to point to unauthorized records.
Database access control errors occur when:
- Data enters a program from an untrusted source.
- The data is used to specify the value of a primary key in a SQL query.
- The untrusted source does not have the permissions to be able to access all rows in the associated table.
Skutki
Confidentiality, Integrity, Access Control
Read Application Data; Modify Application Data; Bypass Protection Mechanism
Zapobieganie
Implementation
Assume all input is malicious. Use a standard input validation mechanism to validate all input for length, type, syntax, and business rules before accepting the data. Use an "accept known good" validation strategy.
Implementation
Use a parameterized query AND make sure that the accepted values conform to the business rules. Construct your SQL statement accordingly.
Słabość nadrzędna
Kiedy powstaje
- Architecture and Design — COMMISSION: This weakness refers to an incorrect design related to an architectural security tactic.
- Implementation
Dotyczy
SQL, Database Server
Wpis z katalogu CWE 4.20.