Skip to content

[MEDIUM] Sensitive data may be logged in audit trail #42

@7tg

Description

@7tg

Description

LogEntry change messages include full request data via json.dumps(data), potentially logging secrets.

Locations

  • File: django_admin_mcp/handlers/crud.py lines 523, 652, 653
  • Code: change_message=f"Created via MCP: {json.dumps(data, default=str)}"

Impact

If a user includes sensitive data in API requests, it gets logged:

  • Passwords being set
  • API keys or tokens in custom fields
  • Personally identifiable information (PII)

Recommended Fix

Sanitize data before logging:

SENSITIVE_FIELDS = {"password", "token", "secret", "key", "api_key", "auth"}

def sanitize_for_logging(data: dict) -> dict:
    sanitized = {}
    for key, value in data.items():
        if any(sensitive in key.lower() for sensitive in SENSITIVE_FIELDS):
            sanitized[key] = "***REDACTED***"
        else:
            sanitized[key] = value
    return sanitized

# Usage
change_message = f"Created via MCP: {json.dumps(sanitize_for_logging(data), default=str)}"

Metadata

Metadata

Assignees

No one assigned

    Labels

    mediumMedium prioritysecuritySecurity vulnerability

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions