GHSA-jhjp-4c2q-xmx4 json
k8saudit shipped rules do not detect privileged/sensitive settings on init or ephemeral containers
published 2026-09-21 48 d ago modified 2026-09-28 41 d ago also GO-2026-6538
- cvss
- 4.3
- version 3.1, GitHub
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
The `k8saudit` plugin's per-container fields (`ka.req.pod.containers.*`) and the shipped `k8s_audit_rules.yaml` evaluated only `requestObject.spec.containers`. Security-relevant settings on a pod's `initContainers` or `ephemeralContainers` were not inspected, so the shipped `Create Privileged Pod` rule did not fire for a privileged container placed in either list.
### Impact
An actor able to create pods (the activity k8saudit is intended to audit) could run a privileged container without triggering the default `Create Privileged Pod` rule, by declaring it as an `initContainer` or `ephemeralContainer` instead of a regular container. Kubernetes runs such containers with the requested privileges, but the shipped rule did not see them. The same gap applied to other per-container security settings (capabilities, `allowPrivilegeEscalation`, `runAsUser`, etc.) and, for deployments using a customized image allowlist, to disallowed images placed in those lists.
This is a detection bypass of the default k8saudit ruleset, not a direct privilege escalation, and it requires the ability to create pods. The cloud-provider variants (`k8saudit-eks`, `k8saudit-gke`, `k8saudit-aks`, `k8saudit-ovh`) embed the same extraction logic and ship the same ruleset, and were affected equally.
Note: adding an ephemeral container goes through the `pods/ephemeralcontainers` subresource, so the `EphemeralContainers Created` rule still logged that event at `NOTICE`, but without any privileged/security evaluation.
### Patches
Fixed in `k8saudit 0.18.0`, and in the cloud-variant releases that depend on it — `k8saudit-eks 0.12.0`, `k8saudit-gke 0.9.0`, `k8saudit-aks 0.6.0`, `k8saudit-ovh 0.6.0` — all released on 2026-06-19.
The fix ([falcosecurity/plugins#1400](https://github.com/falcosecurity/plugins/pull/1400), merged 2026-06-18) adds dedicated `ka.req.pod.initContainers.*` and `ka.req.pod.ephemeralContainers.*` field families and updates `Create Privileged Pod` (via a new `any_container_privileged` macro) to evaluate all three container lists.
Operators upgrading should review any **custom** rules built on `ka.req.pod.containers.*` — in particular tuned `Create Disallowed Pod` image allowlists — and extend them to the new `initContainers`/`ephemeralContainers` image fields.
### Workarounds
For deployments that cannot upgrade immediately, restrict who can create pods (RBAC) and enforce Pod Security Admission (`baseline`/`restricted`) or an admission controller (Kyverno, OPA/Gatekeeper) to block privileged init/ephemeral containers at admission time, as defense-in-depth.
### Credits
[kanywst](https://github.com/kanywst) — discovery and fix.
Patch / fix
- go github.com/falcosecurity/plugins/plugins/k8saudit 0.18.0
- go github.com/falcosecurity/plugins/plugins/k8saudit-eks 0.12.0
- go github.com/falcosecurity/plugins/plugins/k8saudit-gke 0.9.0
- go github.com/falcosecurity/plugins/plugins/k8saudit-aks 0.6.0
- go github.com/falcosecurity/plugins/plugins/k8saudit-ovh 0.6.0
- github.com/falcosecurity/plugins@0adb9b3 commit
- github.com/falcosecurity/plugins#1400 pull request
- github.com/falcosecurity/plugins/releases/tag/plugins/k8saudit-aks/v0… release
- github.com/falcosecurity/plugins/releases/tag/plugins/k8saudit-eks/v0… release
- github.com/falcosecurity/plugins/releases/tag/plugins/k8saudit-gke/v0… release
- github.com/falcosecurity/plugins/releases/tag/plugins/k8saudit-ovh/v0… release
- github.com/falcosecurity/plugins/releases/tag/plugins/k8saudit/v0.18.0 release
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| GitHub | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/falcosecurity/plugins/plugins/k8saudit | <0.18.0 |
0.18.0 |
| go | github.com/falcosecurity/plugins/plugins/k8saudit-eks | <0.12.0 |
0.12.0 |
| go | github.com/falcosecurity/plugins/plugins/k8saudit-gke | <0.9.0 |
0.9.0 |
| go | github.com/falcosecurity/plugins/plugins/k8saudit-aks | <0.6.0 |
0.6.0 |
| go | github.com/falcosecurity/plugins/plugins/k8saudit-ovh | <0.6.0 |
0.6.0 |
Classification
- Weakness
-
- CWE-693 Protection Mechanism Failure
References
-
github.com
/falcosecurity/plugins/pull/1400
web
-
github.com
/falcosecurity/plugins/commit/0adb9b3c7e2c8bad53f30d01c057e038b2afa5e1
web
-
github.com
/falcosecurity/plugins/security/advisories/GHSA-jhjp-4c2q-xmx4
web, advisory
-
github.com
/falcosecurity/plugins
package
-
github.com
/falcosecurity/plugins/releases/tag/plugins/k8saudit-aks/v0.6.0
web
-
github.com
/falcosecurity/plugins/releases/tag/plugins/k8saudit-eks/v0.12.0
web
-
github.com
/falcosecurity/plugins/releases/tag/plugins/k8saudit-gke/v0.9.0
web
-
github.com
/falcosecurity/plugins/releases/tag/plugins/k8saudit-ovh/v0.6.0
web
-
github.com
/falcosecurity/plugins/releases/tag/plugins/k8saudit/v0.18.0
web
Sources
- GitHub Advisory GHSA-jhjp-4c2q-xmx4
- OSV GO-2026-6538
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.