CVE-2026-93421: 
Python 취약성 분석 및 완화

개요

CVE-2026-93421 is an unauthenticated ANSI escape sequence injection vulnerability in the CSP reporting endpoint of Mesop, a Python-based UI framework for building web applications. The /__csp__ endpoint accepts unauthenticated POST requests and logs user-controlled fields (document-uri, blocked-uri, violated-directive) directly to stdout without sanitizing terminal control sequences, allowing attackers to manipulate operator-facing terminal output. All versions up to and including 1.3.3 are affected; the issue was fixed in version 1.3.4. It carries a CVSS v4.0 base score of 5.3 (Medium) (GitHub Advisory). The vulnerability was originally reported by researcher 5H4D0WBY73, published to the GitHub Advisory Database on September 23, 2026 (GitHub Advisory).

기술적 세부 사항

The root cause is improper output neutralization for logs (CWE-117) and improper neutralization of escape, meta, or control sequences (CWE-150). In mesop/server/static_file_serving.py, the csp_report() handler extracts document-uri, blocked-uri, and violated-directive from the JSON body of unauthenticated POST requests to /__csp__ and passes them directly to Python's print() without any sanitization. Because no authentication is required and no input validation is performed, a remote attacker can embed ANSI/VT100 escape sequences (e.g., CSI, OSC, DCS sequences) in these fields; when an operator views the application's stdout in an ANSI-capable terminal, the sequences are interpreted and can clear the screen, reposition the cursor, hide text, or display forged messages. A public proof-of-concept payload is included in the advisory itself (GitHub Advisory, Mesop PR #1397).

영향

The primary impact is on the integrity of operator-facing logs and monitoring output — there is no confidentiality or availability impact on the vulnerable system itself. An unauthenticated attacker can inject forged log messages (e.g., fake "SECURITY OK" notifications), overwrite or hide legitimate CSP violation alerts, and mislead administrators during incident response or security investigations. While this does not enable code execution or data exfiltration, it can undermine trust in the logging infrastructure and potentially cause security events to go undetected (GitHub Advisory).

악용 가능성

No public proof-of-concept exploit code beyond the advisory's own PoC payload has been identified, and there is no evidence of in-the-wild exploitation at this time (GitHub Advisory). The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog. The NVD SSVC assessment classifies exploitation as "none" and the attack as non-automatable, reflecting the requirement for a human operator to view the terminal output for the attack to have effect (Feedly).

착취 단계

  1. Identify target: Locate a publicly accessible Mesop application instance running version 1.3.3 or earlier. The /__csp__ endpoint is unauthenticated and accepts POST requests by default.
  2. Craft malicious CSP report: Construct a JSON payload embedding ANSI/VT100 escape sequences in the blocked-uri, document-uri, or violated-directive fields. For example:
POST /__csp__ HTTP/1.1
Content-Type: application/json

{
  "csp-report": {
    "document-uri": "https://victim.example",
    "blocked-uri": "\u001b[2J\u001b[H\u001b[32m*** SECURITY OK - No CSP violations found ***\u001b[0m\n\u001b[8mhttps://evil.example",
    "violated-directive": "script-src-elem"
  }
}
  1. Submit the request: Send the crafted POST request to /__csp__. The server responds with HTTP 204 and writes the unsanitized fields to stdout.
  2. Wait for operator terminal rendering: When an operator views the application logs in an ANSI-capable terminal (e.g., during monitoring or incident response), the injected sequences execute — clearing the screen, repositioning the cursor, and displaying attacker-controlled content such as a fake "SECURITY OK" message while hiding the actual CSP violation alert.
  3. Achieve objective: The operator is misled into believing no security violation occurred, potentially causing them to ignore or miss a genuine security event (GitHub Advisory).

타협의 징후

  • Network: Unexpected POST requests to /__csp__ containing JSON bodies with non-standard or unusually long blocked-uri, document-uri, or violated-directive values; requests originating from IPs not associated with known browsers or CSP reporting agents.
  • Logs: Stdout log entries from the Mesop application containing raw ESC characters (\x1b, \u001b) or sequences such as [2J, [H, ]0;, or ]8; in CSP report fields; garbled or visually disrupted terminal output when viewing application logs.
  • File System: No file system artifacts are expected for this vulnerability, as the attack targets terminal rendering rather than disk.
  • Process: No anomalous process behavior is expected; the attack is entirely within the normal request-handling flow of the Mesop web server (GitHub Advisory).

완화 및 해결 방법

Upgrade Mesop to version 1.3.4 or later, which introduces the _sanitize_terminal() function that strips ANSI CSI, OSC, DCS, APC, PM, and SOS escape sequences from all untrusted CSP report fields before logging (Mesop Release v1.3.4, Mesop PR #1397). As a short-term workaround for operators unable to upgrade immediately, consider redirecting application stdout to a file rather than an interactive terminal, or piping logs through a tool that strips ANSI sequences (e.g., sed 's/\x1b\[[0-9;]*[mGKHF]//g'). Additionally, switching to structured (JSON) logging instead of unescaped print() statements would prevent terminal interpretation of control characters (GitHub Advisory).

추가 자료


근원: 이 보고서는 AI를 사용하여 생성되었습니다.

관련 Python 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 익스플로잇

수정 사항이 있습니다.

게시된 날짜

CVE-2026-61732CRITICAL10
  • Python logoPython
  • decepticon-core
아니요예Sep 24, 2026
GHSA-g28h-2cmm-rj9xHIGH7.5
  • Python logoPython
  • langchain-nvidia-ai-endpoints
아니요예Sep 24, 2026
CVE-2026-57178HIGH7.4
  • Python logoPython
  • python2.7
아니요예Sep 24, 2026
CVE-2026-57177MEDIUM4.3
  • Python logoPython
  • python3.11
아니요예Sep 24, 2026
CVE-2026-57179MEDIUM4.2
  • Python logoPython
  • python2.7
아니요예Sep 24, 2026

무료 취약성 평가

클라우드 보안 태세를 벤치마킹합니다

9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.

평가 요청

추가 Wiz 리소스

맞춤형 데모 받기

맞춤형 데모 신청하기

"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
데이비드 에슬릭최고정보책임자(CISO)
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
아담 플레처최고 보안 책임자(CSO)
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."
그렉 포니아토프스키위협 및 취약성 관리 책임자