Piko-9b / SECURITY.md
Dexy2's picture
Remove machine-specific filesystem paths from published reports
12cd919 verified
|
Raw
History Blame Contribute Delete
3.43 kB

Security

Reporting a vulnerability

Open a discussion on the model repository or an issue at github.com/itsdexy/Piko-9b.

For anything involving leaked credentials or user data, please use a private channel first rather than a public issue.

Scope

In scope:

  • Secrets, tokens, or personal data present in the repository or in the weights
  • Malicious content in the checkpoint (see below)
  • Vulnerabilities in the scripts published here
  • Licence or attribution errors that create legal exposure for users

Out of scope:

  • The model generating incorrect, biased, or offensive text. That is a capability limitation, not a vulnerability — see the Limitations section of the model card.
  • Jailbreaks that make the model produce content it would otherwise decline. Alignment for this checkpoint is inherited from upstream and was never specifically trained; the custom suite measures it at 7/10 on a 10-prompt probe. Treat it as weak by default.

Checkpoint integrity

  • All weights are safetensors, which cannot execute code on load, unlike pickled .bin files.

  • The repository contains no Python files and no auto_map in config.json, so trust_remote_code=True is not required. If any tool asks you to enable it for this model, treat that as suspicious.

  • scripts/audit_repository.py scans the checkpoint for tokens, keys, private-key blocks, and absolute local paths. Run it after any change:

    python scripts/audit_repository.py --model <path> --output reports/repository_audit.json
    

Known hygiene issue in the original release

The config.json published with the initial release contained a piko_composition block with two absolute filesystem paths from the author's machine (<workspace>/...). No credentials were exposed, but the paths revealed a local directory layout and a private project name. The corrected block carries source identifiers instead. tests/test_model_loading.py contains a regression test that fails if any local path reappears in config.json.

Running model-generated code

evaluation/custom_suite/run_custom_eval.py executes code the model produces, in a subprocess with a 20-second timeout. This is not a sandbox. Do not point that suite at untrusted models or untrusted prompts on a machine you care about. Use a container or a disposable VM.

Prompt injection

Piko-9b has no specific defence against instructions embedded in the content it is given. This matters most in the use case the model is best at: reading documents. A scanned invoice containing the text "ignore previous instructions and…" is input the model may follow.

If you build a document pipeline on this model:

  • Treat every model output as untrusted data, never as commands.
  • Do not let extracted content drive tool calls, shell commands, or database writes unvalidated.
  • Validate structured output against a schema before use.

The suite's sf-04 case checks one simple jailbreak string and passes; that is a smoke test, not an assurance.

Supported versions

Only the current published revision of Dexy2/Piko-9b is maintained. Pin a revision in production:

AutoModelForMultimodalLM.from_pretrained("Dexy2/Piko-9b", revision="<commit-sha>")