DFL-021-25: Prototype Pollution via Query String

Search

API Endpoints

Vulnerability

The GET /search endpoint deep-merges query parameters into the search configuration object. The query parser is configured with allowPrototypes: true, so qs parses ?__proto__[role]=admin into a nested object with a __proto__ key. The custom merge function does not sanitize __proto__, allowing prototype pollution. After pollution, GET /admin succeeds because {}.role === 'admin'.