Summary#
The security PR bundles multiple issues that share one root cause: treating uploaded paths and content as inherently safe. A strong default is to constrain file access to approved roots and force risky content types into download-safe behavior instead of inline rendering.
Problem#
Uploads and file preview endpoints can enable stored XSS or path traversal when content types are rendered inline or filesystem paths are insufficiently bounded.
Solution#
Normalize and validate paths against an allowed directory, prevent traversal outside the intended root, and serve SVG/XML or other user-provided content as downloads or otherwise non-renderable responses.
Failure Modes#
- Path normalization happens after file access decisions, leaving traversal gaps
- Browsers content-sniff uploaded files into executable contexts
- Fixing one endpoint but not parallel preview/load routes leaves the same vulnerability class elsewhere
Sources#
- https://github.com/Comfy-Org/ComfyUI/pull/15030
- https://github.com/Comfy-Org/ComfyUI/pull/14999
- https://github.com/Comfy-Org/ComfyUI/pull/15023
- https://github.com/Comfy-Org/ComfyUI/pull/15021
- https://github.com/Comfy-Org/ComfyUI/pull/14734
- https://github.com/Comfy-Org/ComfyUI/pull/15017
- https://github.com/GitHubDaily/GitHubDaily/pull/267
- https://github.com/GitHubDaily/GitHubDaily/pull/52
- https://github.com/fastapi/full-stack-fastapi-template/pull/2382
- https://github.com/fastapi/full-stack-fastapi-template/pull/2380
- https://github.com/fastapi/full-stack-fastapi-template/pull/2373
- https://github.com/fastapi/full-stack-fastapi-template/pull/2379
- https://github.com/fastapi/full-stack-fastapi-template/pull/2363
- https://github.com/fastapi/full-stack-fastapi-template/pull/2364
- https://github.com/fastapi/full-stack-fastapi-template/pull/2333
- https://github.com/fastapi/full-stack-fastapi-template/pull/2375
- https://github.com/react/react/pull/37095
- https://github.com/react/react/pull/37086
- https://github.com/react/react/pull/37090
- https://github.com/react/react/pull/37089
- https://github.com/react/react/pull/37088
- https://github.com/react/react/pull/37087
- https://github.com/react/react/pull/37062
- https://github.com/react/react/pull/36947
- https://github.com/thedaviddias/Front-End-Checklist/pull/664
- https://github.com/thedaviddias/Front-End-Checklist/pull/680
- mined_at: 2026-07-23T00:46:50Z
Sagwan Revalidation 2026-07-23T01:25:25Z#
- verdict:
ok - note: 경로 제한과 비실행 렌더링 권장은 현재도 유효한 보안 기본값임
Sagwan Revalidation 2026-07-25T03:43:34Z#
- verdict:
ok - note: 경로 격리와 비실행 렌더링 원칙은 여전히 최신 보안 관행과 부합함
Sagwan Revalidation 2026-07-27T08:29:47Z#
- verdict:
ok - note: 경로 제한과 비실행 렌더링 권장은 최신 보안 관행과 여전히 일치함
Sagwan Revalidation 2026-07-29T13:16:42Z#
- verdict:
ok - note: 파일 격리와 비실행 렌더링 권장안은 여전히 유효한 보안 기본값임
Sagwan Revalidation 2026-07-31T22:24:42Z#
- verdict:
ok - note: 파일 경로 격리와 비실행 렌더링 원칙은 여전히 최신 보안 관행에 부합함
Sagwan Revalidation 2026-08-03T10:11:42Z#
- verdict:
ok - note: 파일 격리·경로 검증·비실행 렌더링 원칙은 현재도 유효함
Sagwan Revalidation 2026-08-07T07:39:55Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-09T18:29:24Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-12T06:05:13Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-14T19:47:48Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-17T07:45:46Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-19T19:40:42Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-22T08:13:16Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-24T20:24:45Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-27T08:42:14Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-08-29T21:17:02Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-09-01T10:07:16Z#
- verdict:
ok - note: 파일 격리·비실행 렌더링 권장은 최신 보안 관행과 여전히 일치함
Sagwan Revalidation 2026-09-07T15:22:47Z#
- verdict:
ok - note: [chatgpt HTTP 404] {
Sagwan Revalidation 2026-09-10T03:51:06Z#
- verdict:
ok - note: [chatgpt HTTP 404] {
Sagwan Revalidation 2026-09-12T21:34:39Z#
- verdict:
ok - note: 경로 격리·비실행 렌더링 원칙은 2026년 현재도 업로드 보안의 표준 권고이며, 참조 PR은 영구 링크로 유효하다.