# GHSA-m8j6-rc5x-wv36: nono-py's policy JSON accepts unknown security fields

> Attackers can bypass network restrictions in nono-py sandboxes by exploiting ignored policy fields or missing proxy enforcement, potentially exposing sensitive data.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 26 Jun 2026

## What is GHSA-m8j6-rc5x-wv36?

GHSA-m8j6-rc5x-wv36 is a vulnerability in nono-py, published on 26 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official description

### Summary

nono-py policy handling could fail open in two ways. First, resolving a policy-derived `ProxyConfig` did not automatically enforce `CapabilitySet.proxy_only`, allowing sandboxed children to bypass a resolved domain allowlist by using direct network access. Second, policy JSON accepted unknown security-sensitive fields, so misspelled or unsupported restrictions could be silently ignored.

### Impact

A sandboxed child may receive broader network access than the policy author intended. This can allow outbound requests outside the configured proxy allowlist and may expose sensitive data depending on the execution environment and workload.

### Older-kernel note

On Linux kernels without Landlock ABI v4 network rules, patched versions continue to support proxy-only enforcement through the seccomp supervisor fallback introduced in 807fb4b. Users on older kernels should ensure policy-resolved proxy configurations are coupled to `CapabilitySet.proxy_only(proxy);` merely injecting proxy environment variables is not sufficient.

## Which versions are affected by GHSA-m8j6-rc5x-wv36?

2 open source packages ship an affected version, including nono-py.


| Package | Ecosystem | Affected | Fixed in |
| --- | --- | --- | --- |
| `nono-py` | PyPI | All versions | 0.10.1 |
| `nono-py` | PyPI | All versions | 0.10.1 |

## How do I fix GHSA-m8j6-rc5x-wv36?

Upgrade nono-py to 0.10.1 or later.

## Is GHSA-m8j6-rc5x-wv36 being exploited?

There is no known exploitation of GHSA-m8j6-rc5x-wv36 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for GHSA-m8j6-rc5x-wv36 and fix it if it is affected.

What it is: GHSA-m8j6-rc5x-wv36 is a vulnerability in nono-py, published on 26 Jun 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of GHSA-m8j6-rc5x-wv36 in the wild and no public exploit code.

Affected packages and fixed versions:
- nono-py (PyPI): affected all versions; fixed in 0.10.1
- nono-py (PyPI): affected all versions; fixed in 0.10.1

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/GHSA-m8j6-rc5x-wv36/ (Markdown: https://insights.sbomify.com/GHSA-m8j6-rc5x-wv36/index.md)
```

## Sources

- OSV: https://osv.dev/vulnerability/GHSA-m8j6-rc5x-wv36

---
From sbomify Insights: https://insights.sbomify.com/GHSA-m8j6-rc5x-wv36/
Summaries are generated and may contain mistakes; the official description above is the record.
