CVE-2026-55696:
PHP 취약성 분석 및 완화
개요
CVE-2026-55696 is a stored cross-site scripting (XSS) vulnerability in PrivateBin's attachment download link, exploitable via attacker-controlled dangerous MIME types. It affects all PrivateBin versions up to and including 2.0.4 (composer privatebin/privatebin and Docker images privatebin/gcs, privatebin/nginx-fpm-alpine, privatebin/pdo). The vulnerability was reported on June 11, 2026, and publicly disclosed on July 11, 2026, with the GitHub Advisory Database entry updated August 28, 2026. It carries a CVSS v3.1 base score of 4.3 (Moderate) (GitHub Advisory, PrivateBin Advisory).
기술적 세부 사항
The vulnerability stems from three compounding root causes in js/privatebin.js (CWE-79, CWE-80). First, DOMPurify sanitization is only triggered for SVG MIME types (/^image\/.*svg/i), leaving text/html, application/xhtml+xml, and text/xml attachments completely unsanitized. Second, the "Download attachment" link's href is set to an unsanitized blob URL at line 3002 — before the SVG sanitization branch — and the SVG branch only reassigns a local variable consumed by the preview, never updating the download link. Third, because PrivateBin uses zero-knowledge encryption, the MIME type is fully attacker-controlled: getAttachmentMimeType simply reads the substring between data: and ; in the decrypted data URI, and the browser creates a same-origin blob: URL with that exact Content-Type. Exploitation requires fileupload = true (non-default) and a weakened, stripped, or absent Content Security Policy; instances using the recommended CSP (script-src 'self') are protected because the blob inherits the policy and blocks inline scripts. This is classified as an incomplete fix of CVE-2022-24833 (PrivateBin Advisory, GitHub Advisory).
영향
A successful exploit allows an anonymous attacker's inline JavaScript to execute in the PrivateBin instance's web origin when a victim opens the malicious "Download attachment" link in a new tab. The script can read origin-scoped localStorage and IndexedDB data, and issue authenticated same-origin HTTP requests to the PrivateBin backend or any application co-hosted on the same domain. PrivateBin itself stores only user preferences (language, template, theme) rather than authentication tokens, so the primary risk is to co-hosted applications that share the same origin. Integrity and availability are not directly impacted (PrivateBin Advisory).
악용 가능성
No in-the-wild exploitation has been reported, and the vulnerability is not listed in the CISA KEV catalog. The EPSS score is 0.224% (13th percentile), indicating a low near-term exploitation probability. A detailed proof-of-concept is publicly documented in the security advisory, tested against PrivateBin commit 597a6f0 using a Chromium-based browser. Exploitation requires two non-default conditions: file upload enabled and a weakened or absent CSP, limiting the attack surface to misconfigured self-hosted instances (GitHub Advisory, PrivateBin Advisory).
착취 단계
- Identify a vulnerable target: Locate a self-hosted PrivateBin instance (version ≤ 2.0.4) with
fileupload = trueincfg/conf.phpand a weakened, stripped, or absent Content-Security-Policy header. - Craft the malicious attachment: Create an HTML file (
xss-attachment.html) containing inline JavaScript that readslocalStorage,document.cookie, and issues a same-originfetch()request to exfiltrate data or interact with co-hosted applications. - Create the paste: Browse to the target PrivateBin instance, enter decoy text (e.g., "Quarterly report attached. Open the Download attachment link to view it."), attach the HTML file, and click Create. The browser encodes it as
data:text/html;base64,...and encrypts it client-side. - Distribute the paste URL: Share the resulting paste URL with the intended victim via phishing, social engineering, or any other delivery mechanism.
- Trigger victim interaction: When the victim opens the paste URL, the page decrypts and renders a "Download attachment" link pointing to a same-origin
blob:http://instance/...URL withContent-Type: text/html. - Achieve XSS execution: The victim right-clicks or middle-clicks the "Download attachment" link and opens it in a new tab. The browser renders the blob as a full HTML document in the PrivateBin origin, executing the attacker's inline JavaScript with full same-origin access (PrivateBin Advisory, GitHub Advisory).
타협의 징후
- Network: Unexpected outbound HTTP requests originating from a victim's browser to attacker-controlled domains shortly after opening a PrivateBin paste; same-origin
fetch()calls to the PrivateBin backend (/?jsonld=paste) from ablob:URL context visible in server access logs. - Logs: Web server access logs showing requests to the PrivateBin instance from a
blob:referrer or with unusualOriginheaders; paste creation events withtext/html,image/svg,application/xhtml+xml, ortext/xmlMIME types in the attachment data (visible if logging is enabled). - File System: Presence of PrivateBin paste data files containing base64-encoded HTML payloads with embedded
<script>tags in the configured data directory (e.g.,data/for Filesystem model). - Browser: A new browser tab opening at a
blob:http://<privatebin-instance>/...URL that renders an unexpected HTML page rather than triggering a file download (PrivateBin Advisory).
완화 및 해결 방법
Upgrade to PrivateBin version 2.0.5, which resolves this vulnerability by replacing the attacker-controlled MIME type with application/octet-stream for the download link blob, forcing the browser to download rather than render the file. An allowlist of safe MIME types (non-SVG images, video, audio, PDF, text/plain) is used to preserve legitimate preview functionality. As an interim workaround for instances that cannot immediately upgrade, enforce the recommended Content-Security-Policy header (script-src 'self' 'wasm-unsafe-eval'), which blocks inline script execution in the blob context. Additionally, disabling file upload (fileupload = false) eliminates the attack vector entirely (PrivateBin Advisory, Release v2.0.5, Patch Commit).
커뮤니티 반응
The vulnerability was reported by security researcher Rizky Muhammad (@EvidentObscurity) and credited in the official advisory. The PrivateBin maintainers (rugk as remediation developer, elrido as reviewer) responded promptly, reproducing the issue within two days of the report and releasing a patch in version 2.0.5 on July 11, 2026. The advisory explicitly frames this as an incomplete fix of the prior CVE-2022-24833, acknowledging that the original fix's safety argument for the download link was flawed. The release received positive community reactions on GitHub (PrivateBin Advisory, Release v2.0.5).
추가 자료
근원: 이 보고서는 AI를 사용하여 생성되었습니다.
관련 PHP 취약점:
무료 취약성 평가
클라우드 보안 태세를 벤치마킹합니다
9개의 보안 도메인에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 식별합니다.
추가 Wiz 리소스
맞춤형 데모 받기
맞춤형 데모 신청하기
"내가 본 최고의 사용자 경험은 클라우드 워크로드에 대한 완전한 가시성을 제공합니다."
"Wiz는 클라우드 환경에서 무슨 일이 일어나고 있는지 볼 수 있는 단일 창을 제공합니다."
"우리는 Wiz가 무언가를 중요한 것으로 식별하면 실제로 중요하다는 것을 알고 있습니다."