feat: vendorizar as 10 skills do pilar de seguranca em skills/
Copia local (nao fork, nao submodule) de safedeps, sca-audit, secrets-scan, code-review-security, api-security-review, web-security-review, cve-triage, patch-prioritization, dependency-scanning e hermaguard -- commit exato de origem e licenca de cada uma em skills/NOTICE.md. Elimina o passo de clone externo pro pilar de seguranca do wf-security-review: git clone deste repo ja traz tudo funcional. Corrige tambem o comando de instalacao pro Claude Code nos dois READMEs e no docs/SKILLS.md: Claude Code exige um diretorio por skill (skills/<nome>/SKILL.md), nao aceita os .md soltos que o comando antigo copiava -- confirmado testando a instalacao real.
This commit is contained in:
1 parent
ee44fa0f7a
commit
c17192c9fe
130 files changed
+10533
-33
No files matched your search
@@ -0,0 +1,4 @@
|
||||
def reset_password(request, user_id: int):
|
||||
new_pw = request.json["password"]
|
||||
db.execute("UPDATE users SET pw = ? WHERE id = ?", (hash(new_pw), user_id))
|
||||
db.commit()
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"title": "State-changing route without authentication",
|
||||
"description": "POST handler has no session check; anonymous requests reset any account.",
|
||||
"severity": "CRITICAL",
|
||||
"category": "security",
|
||||
"findings": [
|
||||
{
|
||||
"file": "app.py",
|
||||
"trigger": "state-changing handler without session/auth check",
|
||||
"description": "Account takeover by anonymous callers",
|
||||
"severity": "CRITICAL",
|
||||
"classes": [
|
||||
"CWE-306",
|
||||
"CWE-287"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
--- a/app.py
|
||||
+++ b/app.py
|
||||
def reset_password(request, user_id: int):
|
||||
- if not request.session.get("user"):
|
||||
- raise PermissionError("login required")
|
||||
new_pw = request.json["password"]
|
||||
Reference in new issue
Block a user