Repository navigation
chore: retire carried static-dashboard duplicate - #1399
seonghobae wants to merge 2 commits into
Conversation
AppGuardrail 대시보드(scanner/dashboard/index.html)에서 발생하는 프로토타입 오염(Prototype Pollution) 및 DOM 기반 크로스 사이트 스크립팅(DOM XSS) 취약점을 수정했습니다. - 사용자 입력 기반 카테고리를 담는 `byCat` 객체를 `Object.create(null)`로 초기화하여 프로토타입 오염 방지 - 객체 키 유효성 검증 시 프로토타입 체인을 무시하도록 `in` 연산자 대신 `Object.hasOwn` 사용 - 객체 속성(e.g., `SEV[sevKey].color`)이 DOM 템플릿에 안전하게 바인딩되도록 `esc()` 함수 래핑 적용
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| const byCat = Object.create(null); | ||
| let blocking = 0; | ||
| for(const f of ALL){ | ||
| const s = String(f.severity||'INFO').toUpperCase(); | ||
| counts[s in counts ? s : 'INFO']++; | ||
| counts[Object.hasOwn(counts, s) ? s : 'INFO']++; | ||
| const c = String(f.category||'misconfig'); | ||
| byCat[c] = (byCat[c]||0)+1; |
There was a problem hiding this comment.
Canonical-writer carryover rationaleFresh exact-head review of Canonical #1260 exact
This also satisfies the sole unresolved #1399 review finding that hostile The PR is Draft and will be retired only through an ordinary source-neutral child restoring protected |
Understood. Acknowledging that this work is now obsolete and stopping work on this task. |
Retired after verified complete carryover
861f36354fa32b77b1f7f9e59532f2ead7bbf3310266446214dabccd2f0193421fa9b7e5cd8fc066develop@2949d30718752ea5915c7713ba227e8c19d9e5bf/ec4525421f9ed758966e1929a45af4a44b0b81e1[]146cc63da545ee9e8b410edc91a9958205760e13#1260 carries every reproducible product requirement: own-key severity authorization with INFO fallback, null-prototype category aggregation, preserved visible-text escaping, and direct Node-backed prototype-name regressions. Focused contracts pass 5/5 and the full local suite passes 1,094/1,094. This also satisfies #1399's sole unresolved review finding about missing hostile-category/severity execution coverage.
The original prototype-pollution/DOM-XSS claims were not reproduced; the tests demonstrate prototype-chain lookup/collision while
Object.prototyperemains unchanged. Re-escaping fixed allowlist color constants and the unsupported.juleslesson are not separate valid deltas.This predecessor is closed only after ordinary protected-tree restoration and exact zero-diff proof. No force push, destructive rebase, valid-delta loss, gate weakening, merge, or release occurred. #1260 remains open and merge-HOLD pending executable exact-head Checks and qualifying review.