취약점 데이터베이스GHSA-r324-29wm-vcjm

GHSA-r324-29wm-vcjm: 
PHP 취약점 분석 및 완화

Summary

Any signed-in user could upload an HTML or SVG file that ran as a web page on the forum's own domain. Anyone who opened a link to it could have their account taken over, including moderators and administrators. Fixed in v0.7.3.

Details

Waterhole ships config/uploads.php with 'allowed_mimetypes' => [], which UploadController passes to File::types(), so attachments of any type are accepted. Upload::fromFile() stored each file on the public uploads disk as uploads/<hash>.<extension>, where the extension comes from the file's detected content (UploadedFile::hashName()). HTML content was stored as .html, SVG as .svg and XML as .xml, and the web server served them from the forum's origin with an active content type. Because the file runs on the same origin, a script in it can read the XSRF-TOKEN cookie and send authenticated requests as the victim, such as changing their password. Login counts as a recent password confirmation, so no re-confirmation prompt blocks this. The fix (v0.7.3) stores uploads detected as HTML, XML (including SVG), JavaScript or PHP as .txt with type text/plain, so they are served as inert text. The files can still be attached and downloaded.

Proof of concept

  1. On a Waterhole forum with default settings, sign in as any user who can post.
  2. Create a file named test.html containing: <script>alert(document.domain)</script>
  3. Attach it to a post using the composer's upload button. The upload succeeds and the post links to /storage/uploads/<hash>.html.
  4. As another signed-in user, open that link. The script runs on the forum's domain. The same works with an SVG containing a <script> element.

Impact

Stored cross-site scripting (CWE-79). It affects every Waterhole forum running a version below 0.7.3 that allows uploads (the default) and serves uploads from the forum's own domain (the default public disk). Any signed-in user can take over the account of any user who opens a link to the uploaded file, including moderators and administrators. Files uploaded before upgrading are not changed by the update. After upgrading, delete any .html, .htm, .svg, .xhtml, .xml or .js files in the uploads directory (storage/app/public/uploads by default). Workaround if you can't upgrade straight away: set allowed_mimetypes in config/waterhole/uploads.php to safe types, for example: 'allowed_mimetypes' => ['jpg', 'jpeg', 'png', 'gif', 'webp', 'pdf', 'txt', 'zip'], Then delete the existing files listed above.


소스: NVD

관련 PHP 취약점:

CVE ID

심각도

점수

기술

구성 요소 이름

CISA KEV 악용

수정 사항이 있습니다

출판일

GHSA-w6hj-6587-3jh5HIGH8.8
  • PHP logoPHP
  • composer/composer
아니요네Nov 10, 2026
GHSA-jhfp-4ppm-crmmHIGH8.8
  • PHP logoPHP
  • composer/composer
아니요네Nov 10, 2026
GHSA-r324-29wm-vcjmHIGH8.7
  • PHP logoPHP
  • waterhole/core
아니요네Nov 09, 2026
GHSA-9xfr-hv5p-95rwHIGH7.5
  • PHP logoPHP
  • fahlisaputra/laravel-minify
아니요네Nov 10, 2026
GHSA-x82q-x274-r6pqMEDIUM6.5
  • PHP logoPHP
  • composer/composer
아니요네Nov 10, 2026

무료 취약점 평가

클라우드 보안 포세를 벤치마킹하세요

9개 보안 영역에서 클라우드 보안 관행을 평가하여 위험 수준을 벤치마킹하고 방어의 허점을 파악하세요.

요청 평가

추가 Wiz 리소스

맞춤형 데모를 받아보세요

맞춤형 데모 신청하기

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