REDHAT-BUG-2480151: Medium severity Foreman foreman-mcp-server vulnerability
Description The foreman-mcp-server contains two distinct logging mechanisms that expose sensitive session and authentication data.
Exposure occurs across two tiers:
Diagnostic Over-logging (INFO Level): The server relies on the MCP Python SDK (Upstream: modelcontextprotocol/python-sdk). By default, this library logs the creation of new transports and their associated mcp-session-id at the INFO level. While this is standard diagnostic behavior for the SDK, the foreman-mcp-server implementation fails to suppress or filter these logs. Because the server improperly treats the session ID as an authentication credential (as proven in F-34 MCP Server: Active Session Hijacking via Insecure Session State Reuse), this default behavior results in the leakage of session secrets in standard, non-debug application logs.
Incomplete Sanitization Logic (DEBUG Level): The LoggingMiddleware (src/foremanmcpserver/middleware/logging.py) records the full HTTP request header dictionary when the log level is set to DEBUG. This middleware utilizes a negative security model (block-list) that only masks four hardcoded keys: foremanpassword, foremantoken, password, and token. Any header not explicitly on this list, such as Authorization, Cookie, or X-Satellite-Secret, is logged in cleartext.
IMPACT
Confidentiality Breach: Sensitive Bearer tokens, Session IDs, and API keys are persisted in plain text within the container logs.
Log Aggregation Risk: If logs are forwarded to a centralized platform (e.g., ELK, Splunk, CloudWatch), the secrets become searchable and accessible to a wider pool of users (developers, auditors, SREs) who may not have authorization to the Foreman API itself.
Non-Compliance: This behavior directly violates global security standards that prohibit the storage of sensitive authentication data in audit logs.
RECOMMENDATIONS
Address Diagnostic Verbosity (Dependency Fix): Configure the application's logging dictionary to set the mcp.server logger to WARNING or higher. This will suppress the default INFO level transport creation logs from the SDK.
Adopt an Allow-list (Positive Security Model): Re-engineer sanitizeheaders to mask all header values by default. Only allow-list known non-sensitive headers (e.g., host, user-agent, accept, content-type).
REFERENCES
CWE-532: Insertion of Sensitive Information into Log File
OWASP Logging Cheat Sheet
https://github.com/modelcontextprotocol/python-sdk
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Configure the application's logging dictionary to set the 'mcp.server' logger to WARNING or higher to suppress the SDK's default INFO-level transport creation logs.
Application logging configuration mcp.server logger level = WARNING - Configuration
Re-engineer _sanitize_headers so that it masks all header values by default (positive security model): any header not explicitly allow-listed must be redacted from logs.
foreman-mcp-server LoggingMiddleware (src/foreman_mcp_server/middleware/logging.py) _sanitize_headers default behavior = mask all header values by default - Configuration
Only allow-list known non-sensitive headers (for example: host, user-agent, accept, content-type) and ensure all other headers are masked by default.
foreman-mcp-server LoggingMiddleware (src/foreman_mcp_server/middleware/logging.py) allow_list_headers = host, user-agent, accept, content-type - Configuration
Explicitly ensure sensitive headers such as Authorization, Cookie, and X-Satellite-Secret are masked and never logged in cleartext.
foreman-mcp-server LoggingMiddleware (src/foreman_mcp_server/middleware/logging.py) mask_headers = Authorization, Cookie, X-Satellite-Secret
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2480151?
The severity of REDHAT-BUG-2480151 is medium with a risk rating of 4.
What does REDHAT-BUG-2480151 expose?
REDHAT-BUG-2480151 exposes sensitive session and authentication data through distinct logging mechanisms.
What software is affected by REDHAT-BUG-2480151?
The affected software is the Foreman foreman-mcp-server.
How can I mitigate the risks of REDHAT-BUG-2480151?
To mitigate the risks of REDHAT-BUG-2480151, adjust logging configurations to minimize sensitive data exposure.
What are the potential consequences of REDHAT-BUG-2480151?
The potential consequences of REDHAT-BUG-2480151 include unauthorized access to sensitive session and authentication information.