Dynamic attribute access via getattr()
Low
- Category
- Dangerous Code Execution
- Content
if filters: for key, value in filters.items(): query = query.filter(getattr(self.__model__, key) == value) if offset: query = query.offset(offset)- Confidence
- 84% confidence
- Finding
- This code applies filters using getattr(self.__model__, key) where keys come from the caller-supplied filters dictionary. An attacker who can control filter keys may trigger access to unintended model attributes, cause exceptions for invalid fields, or query on columns that should not be exposed, creating an authorization and data exposure risk in a generic DAO.
