GitHub Security Advisory: GHSA-mw39-9qc2-f7mg
Package: github.com/rancher/rancher (GO)
Severity: MODERATE (CVSS 4.3)
CWE: CWE-532: Insertion of Sensitive Information into Log File
Vulnerable versions: < 0.0.0[PII_REDACTED]3444-50dc516a19ea
Patched in: 0.0.0[PII_REDACTED]3444-50dc516a19ea

Summary: Rancher exposes sensitive information through audit logs

Details:
### Impact
**Note: The exploitation of this issue requires that the malicious user have access to Rancher’s audit log storage.**

A vulnerability has been identified in Rancher Manager, where sensitive information, including secret data, cluster import URLs, and registration tokens, is exposed to any entity with access to Rancher audit logs. This happens in two different ways:

1. Secret Annotation Leakage: When creating Kubernetes Secrets using the `stringData` field, the cleartext value is embedded in the `kubectl.kubernetes.io/last-applied-configuration` annotation. This annotation is included in Rancher audit logs within both the request and response bodies, exposing secret material that should be redacted.
2. Cluster Registration Token Leakage: During the import or creation of downstream clusters (Custom, Imported, or Harvester), Rancher audit logs record full cluster registration manifests and tokens, including:
a. Non-expiring import URLs such as `/v3/import/<token>_c-m-xxxx.yaml`.
b. Full `kubectl apply` and `curl` commands containing registration tokens and CA checksums.
c. Token values associated with cluster registration resources (`clusterRegistrationToken`).
d. These tokens are valid until explicitly revoked and can be used to re-register nodes, granting unauthorized cluster access.

An attacker or internal user who gains access to these logs could:
- Recover plaintext secret values from annotations.
- Use cluster registration tokens or import URLs to re-enroll agents or compromise downstream clusters.
- Access clusters that rely on these tokens for authentication, enabling lateral movement.

Please consult the associated  [MITRE ATT&CK - Technique - Log Enumeration](https://attack.mitre.org/techniques/T1654/) for further information about this category of attack.

### Patches
This vulnerability is addressed by applying redaction to sensitive information that was leaking.

Patched versions of Rancher include release `v2.12.3`.

### Workarounds
If the deployment can't be upgraded to a fixed version, users are encouraged to create `AuditPolicies` to redact and filter some of those requests as described in our [documentation](https://ranchermanager.docs.rancher.com/how-to-guides/advanced-user-guides/enable-api-audit-log#audit-log-policies).

The following AuditPolicy can be applied to redact the secrets:
```yaml
apiVersion: auditlog.cattle.io/v1
kind: AuditPolicy
metadata:
  name: redactions
spec:
  enabled: true
  additionalRedactions:
    - headers:
      - "Referer"
    - paths:
      - "$..metadata.annotations['kubectl.kubernetes.io/last-applied-configuration']"
```

Also consider granting access to Rancher's logs only for trusted users.


### References
If you have any questions or comments about this advisory:
- Reach out to the [SUSE Rancher Security team](https://github.com/rancher/rancher/security/policy) for security related inquiries.
- Open an issue in the [Rancher](https://github.com/rancher/rancher/issues/new/choose) repos