[mimosa 1.0.3] Reproducible findings: git-gate project-root resolution, GLM gate credential integration gap, static FP/safe-control calibration
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 25/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Bereich
- devtools, security, testing-qa
Rechercherichtung
Start with the documented commands and entry points: mimosa status --project ., the ZCode PreToolUse(Bash) git-gate, mimosa doctor, and the gate configuration surfaces. Review .zcode-plugin/plugin.json, dist/cli.js, and related issue #43, then reproduce the listed contract fixtures. Done means the proposed root resolution, credential or host-model flow, finding calibration, and suppression behavior are covered by the suggested acceptance tests.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Additional reproducible findings from Mimosa 1.0.3 on Windows / ZCode
We completed a security-gate investigation on a private PHP/Python application and can add several reproducible data points to this issue.
No protected Mimosa payload was modified, no hook was disabled, and no --no-verify / MIMOSA_NO_GIT_GATE / hook-path override was used.
1. Git-gate project-root resolution differs from the CLI
In an existing multi-repository ZCode workspace:
mimosa status --project .correctly resolved an isolated repository passed from the command working directory.- the ZCode
PreToolUse(Bash)git-gate continued scanning a different repository bound to the ZCode workspace.
This was reproduced multiple times.
After completely closing ZCode and starting a fresh process whose only workspace was the isolated repository, both the CLI and hook correctly bound to the isolated repository.
So the issue appears specifically related to git-gate project-root resolution from the ZCode host workspace rather than command cwd.
Expected behavior would be equivalent to resolving the actual target Git root, e.g. git rev-parse --show-toplevel, for the commit/push operation.
2. MIMOSA_GIT_GATE_GLM=1 is not usable with the documented configuration surface
In the fresh isolated workspace:
MIMOSA_GIT_GATE_GLM=1was inherited by the ZCode process;- the normal L3 git gate executed;
- static findings were detected;
- semantic review did not execute and the output indicated no usable key (
未复核/无 Key); - the gate correctly remained fail-closed.
We then exhaustively checked the supported configuration surfaces without inspecting secrets or modifying protected payloads:
mimosa --helpmimosa doctormimosa doctor --jsonmimosa audit --helpmimosa mcp --help- installed English/Chinese README files
- commands
- skills
- manifests
- readable CLI/bootstrap files
We found no documented:
- GLM provider setting;
- GLM model setting;
- API-key environment variable;
- endpoint variable;
configure,auth,login, orsetupcommand;- schema or supported creator for the
runtime.jsonpath mentioned bydoctor.
The ZCode host itself had a functional GLM provider, but Mimosa did not consume that host configuration.
This leaves MIMOSA_GIT_GATE_GLM=1 effectively unusable for this installation unless there is an undocumented credential-integration mechanism.
3. Static false positives reproduced with safe counterparts and unsafe controls
We built an engine contract suite using minimal fixtures.
Safe/by-design cases still reported as HIGH included:
- validated internal redirect helper whose contract rejects external scheme/host/userinfo/fragment/CRLF/protocol-relative destinations;
- OAuth authorization redirect where provider is enum/allowlisted and the authorization-server origins are server-side literal constants;
- RFC 6238 TOTP using HMAC-SHA1;
- test/tooling filesystem operations confined to temporary directories.
The corresponding unsafe controls were still correctly blocked:
header('Location: ' . $_GET['url'])→ HIGH / commit denied;- tainted shell string with
shell=True→ HIGH / write or commit denied.
So the problem is not lack of enforcement; it is inability to distinguish supported safe protocol/sanitizer contexts from truly unsafe sinks.
4. Crypto rule appears miscalibrated in both directions
A TOTP HMAC-SHA1 implementation validated against RFC 6238 vectors is classified as weak crypto.
However, a minimal sha1($password) password-hashing fixture was not classified as HIGH in the same contract suite.
Expected behavior:
- TOTP/HOTP HMAC-SHA1 protocol compatibility → allowed or contextual informational finding;
- SHA-1 used for password storage → HIGH.
5. Ledger / suppression behavior differs between standalone scan and git gate
Inline suppression / standalone scanning can consider an individual finding resolved or ignored.
The L3 git gate still evaluates those same findings fail-closed.
If this is intentional, it would help to document that ledger/suppression does not participate in git-gate decisions.
If it is not intentional, using one shared policy evaluation path for standalone scan, sealed scan, commit gate, and push gate would eliminate significant ambiguity.
Suggested acceptance tests
A future Mimosa release could include contract fixtures such as:
SAFE_PROCESS_ARGV_LIST -> no HIGH
UNSAFE_TAINTED_SHELL_STRING -> HIGH
SAFE_INTERNAL_REDIRECT -> no HIGH
USER_CONTROLLED_REDIRECT -> HIGH
OAUTH_LITERAL_ALLOWED_ORIGIN -> no HIGH
OAUTH_USER_CONTROLLED_ORIGIN -> HIGH
TOTP_HMAC_SHA1_RFC6238 -> no HIGH / INFO
PASSWORD_SHA1 -> HIGH
REMOVED_SINK_RESCAN -> stale finding disappears
GIT_GATE_PROJECT_ROOT -> scans the repository targeted by commit/push
We can provide additional sanitized reproducer details if useful.
Addendum (found while filing this report)
- The distributed
.zcode-plugin/plugin.jsonofficial description states: 「深度审计的复核与修复由 ZCode 自身模型完成,无需另配 GLM API Key。」 ("deep-audit review and fixes are performed by ZCode's own model; no separate GLM API Key is required"). However, withMIMOSA_GIT_GATE_GLM=1the L3 git gate never handed semantic review to the host model — it denied purely on static findings with no host-review flow observed. Either the gate should consume host-model review per that description, or the flag needs a documented key-based path. - The readable
dist/cli.jsis only a signed loader (zero occurrences ofglm/runtime.json); the actual logic lives in the Ed25519-verified encrypted payloads.doctorflags~/.zcode/mimosa-zcode/runtime.jsonas missing, but no readable artifact documents its schema, creator, or creating command.
Related: #43 (policy evaluation paths for gate vs standalone scan).
Environment:
Mimosa: 1.0.3
Host: ZCode
OS: Windows
Git gate: graded / fail-closed
GLM gate flag: MIMOSA_GIT_GATE_GLM=1
- Vorherrschende Sprache
- Python
- Sterne
- 86
- Forks
- 51
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus zai-org/zcode-plugins
-
video-agent-kit (0.4.3): hooks invoke python3, which doesn't exist on Windows — SessionStart/UserPromptSubmit/Stop hooks fail on every triggerEvtl. vergeben @dvd233 hat das vor 13 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 85/100
zai-org/zcode-plugins#14 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
zai-org/zcode-plugins#64 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
zai-org/zcode-plugins#60 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
zai-org/zcode-plugins#59 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 45/100
zai-org/zcode-plugins#58 ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in zai-org/zcode-plugins
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 75/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
data-umbrella/du-event-board#225 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100