Information disclosure vulnerabilities don’t directly compromise your application, but they give attackers the reconnaissance data they need to plan targeted attacks. An exposedDocumentation Index
Fetch the complete documentation index at: https://docs.qaos.machdel.com/llms.txt
Use this file to discover all available pages before exploring further.
.env file, a stack trace in a 500 page, or a Server: Apache/2.4.51 header can be the starting point for a critical exploit.
exposed-sensitive-file
Critical What it is Sensitive files — such as.env, config.json, backup.sql, .git/config, or phpinfo.php — are publicly accessible via direct URL, or directory listing is enabled on the server, exposing the full list of files.
Why it matters
.env files often contain database credentials, API keys, and encryption secrets. A single exposed .env file gives an attacker everything needed to compromise your infrastructure. Directory listings expose the full application structure, making further attacks trivial.
How QAOS detects it
The agent probes a set of common sensitive file paths on every target:
.gitignore and .dockerignore to ensure .env and other secrets are never placed in public directories.
sensitive-data-logged
High What it is The browser console contains log entries with sensitive information: passwords, authentication tokens, JWT tokens, API keys, or personally identifiable information (PII). Why it matters Browser console logs are visible to any user with DevTools open. In shared environments or when a user shares a screenshot, this data is exposed. Console logs also often flow into log aggregation systems, creating a persistent record of sensitive data. How QAOS detects it The agent captures console log entries during normal page interaction and scans them for patterns indicating sensitive data: password strings, token patterns, credit card numbers, SSN patterns, or full user objects containing PII. Examplesconsole.log calls before production deployment. Use a logging library that supports log levels and automatically strips or redacts sensitive fields. Never log password values, full tokens, or complete user objects containing PII.
server-info-leakage
Medium What it is HTTP response headers disclose the server software name and exact version number, giving attackers a targeted list of known CVEs to exploit. Why it matters An attacker who knows you’re runningApache/2.4.51 (Ubuntu) can immediately look up all known vulnerabilities for that version and attempt targeted exploits. Version information is free reconnaissance.
How QAOS detects it
The agent checks HTTP response headers for Server and X-Powered-By values that include version numbers or framework names.
Examples
detailed-error-message
Medium What it is The browser console contains stack traces, file system paths, database error messages, or internal IP addresses that reveal the application’s internal structure. Why it matters Stack traces reveal file paths and line numbers, letting attackers map the codebase. Database errors likeSQLSTATE[42S02]: Table 'users' not found expose schema details. Internal IP addresses reveal network topology.
How QAOS detects it
The agent captures all console log entries and scans them for stack trace patterns, database error strings, file system paths, and internal network addresses.
Examples
detailed-error-page
Medium What it is Error pages (404, 500, etc.) display stack traces, file paths, database error messages, or internal IP addresses instead of a generic error message. Why it matters Error pages are often the highest-information-density pages in an application. A verbose 500 error page can reveal the entire application stack, database schema, and internal network layout in a single response. How QAOS detects it The agent deliberately requests non-existent pages and triggers server errors to probe error page verbosity, checking the response for stack traces and internal details. How to fix Configure custom error pages that display only a user-friendly message with no internal details. In development, verbose errors are useful — but ensureDEBUG=False (or equivalent) in production:
local-log-storage
Medium What it is Client-side JavaScript writes log entries tolocalStorage or sessionStorage, persisting debug data in the browser across sessions.
Why it matters
localStorage is accessible to any JavaScript running on the same origin (including injected scripts from XSS) and persists indefinitely. Sensitive debug data stored there can be read by attackers long after the original session.
How QAOS detects it
The agent scans JavaScript source for calls to localStorage.setItem or sessionStorage.setItem with log-related patterns.
How to fix
Remove localStorage-based logging from production builds. If you need client-side error reporting, use a proper service (Sentry, Datadog) that transmits logs over HTTPS rather than storing them locally.