[mimosa 1.0.3] Reproducible findings: git-gate project-root resolution, GLM gate credential integration gap, static FP/safe-control calibration
Los mantenedores suelen responder en 2 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Área
- devtools, security, testing-qa
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 86
- Forks
- 51
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de 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 triggerPosiblemente ocupada @dvd233 la tomó hace 12 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
zai-org/zcode-plugins#14 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
zai-org/zcode-plugins#64 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
zai-org/zcode-plugins#60 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
zai-org/zcode-plugins#59 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
zai-org/zcode-plugins#58 ·
Los mantenedores suelen responder en 2 días
Todos los issues de zai-org/zcode-plugins
Issues similares
-
feature:LinkChecker
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
digitalfabrik/integreat-cms#4594 ·
Los mantenedores suelen responder en 5 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
EleutherAI/lm-evaluation-harness#4319 ·
Los mantenedores suelen responder en 1 día
-
needs triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
json_params_matcher fails on falsy top-level JSON primitives (0, False, "")Posiblemente ocupada @mayureshsonawane17 la tomó hoy. AbiertoWaiting for: Product Owner
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 5 días