orm-filter-data-leak

Craft ORM relationship traversal payloads to test filter endpoints for data leaks.

11|1|Updated May 4, 2026
One-click install
npx skills add https://github.com/dreadnode/capabilities --skill orm-filter-data-leak
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: orm-filter-data-leak
Source: https://github.com/dreadnode/capabilities/tree/main/capabilities/web-security/skills/orm-filter-data-leak
Command: npx skills add https://github.com/dreadnode/capabilities --skill orm-filter-data-leak

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Web applications using ORMs often expose search and filter endpoints that allow attackers to traverse relationships between database tables, accessing sensitive data from joined models that should not be publicly available, resulting in unintended data leaks.

Core Features & Use Cases

  • ORM Filter Syntax Detection: Identifies common ORM filter patterns including double underscores, dot notation, and nested object syntax in endpoint parameters.
  • Relationship Traversal Probes: Provides pre-built payloads to test traversal of model relationships and access fields from related tables.
  • Use Case: A red teamer testing a Django user management API can use this skill to check if the /api/users endpoint allows accessing sensitive SSN fields from user profile models via filters like profile__ssn__startswith=1.

Quick Start

Use the orm-filter-data-leak skill to test the /api/users endpoint for sensitive data leaks by sending filter payloads that traverse user profile relationships to access hidden SSN fields.

Frequently Asked Questions about orm-filter-data-leak

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I test ORM filters for unauthorized data leaks in web applications?

To test ORM filters for data leaks, you craft relationship traversal payloads using ORM operators and syntax to access sensitive fields from joined database tables through user-controlled filter parameters.

What is ORM relationship traversal and how does it expose joined table data?

ORM relationship traversal is a technique where attackers manipulate search and filter endpoints using syntax like double underscores or dot notation to traverse model relationships and access sensitive data from joined tables.

Can I use this to test Django APIs for sensitive data exposure via filter parameters?

Yes, you can test Django APIs by sending filter payloads that traverse user profile relationships, such as checking if the /api/users endpoint allows accessing hidden SSN fields via filters like profile__ssn__startswith=1.

What ORM filter syntax patterns are commonly exploited for data exfiltration?

Commonly exploited ORM filter syntax patterns include double underscores, dot notation, and nested object syntax in endpoint parameters, which allow traversal of relationships between database tables to leak joined model data.

Does this approach work with Rails, Laravel, Sequelize, and Hibernate applications?

Yes, this approach works with Rails, Laravel, Sequelize, and Hibernate applications, targeting web applications with ORM-backed search and filter endpoints that expose user-controlled filter parameters vulnerable to relationship traversal.

What's the best way to probe filter endpoints for hidden joined model fields during red teaming?

The best way to probe filter endpoints during red teaming is to use pre-built relationship traversal payloads designed to test traversal of model relationships and access sensitive fields from related database tables.