December 17, 2025. Kubernetes 1.35 shipped, marking the final major release of 2025 and capping a year where security moved from “nice to have” to “production mandatory.”
From a DevSecOps perspective, 2025 brought the kind of security improvements teams actually needed: stable features for workload isolation, improved secrets management, and hardening capabilities that don’t require PhD-level complexity to implement.
With Kubernetes 1.35 officially released, now is the perfect time for a year-end security retrospective: the 7 stable features that graduated in 2025, what they mean for production workloads, and a preview of what’s coming in 2026.
Why 2025 Was Different for Kubernetes Security
Previous years brought experimental security features that looked promising in alpha but took years to reach production-ready status. 2025 changed that.
Key trends:
- Alpha-to-Stable acceleration: Features moved from alpha to stable faster
- Production-first mindset: Security improvements focused on day-2 operations
- User namespaces maturity: The multi-year journey finally paid off
- Sidecar containers standardization: Native Pod lifecycle primitive for security agents
The 7 Stable Kubernetes Security Features of 2025
1. Bound ServiceAccount Token Improvements (Stable in v1.33)
What It Does:
Adds unique token IDs and node binding to ServiceAccount tokens, improving validation, auditability, and limiting token reuse or node impersonation.
Why It Matters:
ServiceAccount tokens were a weak point. Attackers who compromised a token could use it anywhere. With node binding and unique IDs:
- Tokens are tied to specific nodes
- Each token has a unique identifier for audit trails
- Token reuse across nodes is blocked
- Node impersonation attacks are mitigated
Production Impact:
If you’re running multi-tenant Kubernetes or dealing with compliance requirements, this is mandatory hardening. Enable it immediately.
2. Sidecar Containers (Stable in v1.33)
What It Does:
Native sidecar containers become a stable Pod lifecycle primitive, making it safer and more reliable to run security agents, proxies, and observability sidecars alongside workloads.
Why It Matters:
Before this, sidecar patterns were hacks:
- Init containers ran before main containers (wrong timing)
- Regular containers had no guaranteed startup order
- Shutdown race conditions caused issues
Now:
- Sidecars start before main containers
- Sidecars shutdown after main containers
- Security agents (Falco, Tetragon) work reliably
YAML Example:
apiVersion: v1
kind: Pod
metadata:
name: myapp-with-security
spec:
initContainers:
- name: security-agent
image: falco-agent:latest
restartPolicy: Always # This makes it a sidecar
containers:
- name: myapp
image: myapp:v1
Production Impact:
If you’re running service meshes (Istio, Linkerd) or eBPF security tools, upgrade to 1.33+ immediately. Sidecar reliability just got dramatically better.
3. Recursive Read-Only (RRO) Mounts (Stable in v1.33)
What It Does:
Allows volumes to be mounted fully read-only (including subpaths), closing write paths that attackers could previously abuse on supposedly read-only mounts.
Why It Matters:
Before RRO, “read-only” mounts weren’t truly read-only. Attackers could:
- Write to bind mounts
- Modify subpaths
- Exploit remount vulnerabilities
RRO mounts are cryptographically verified read-only. No exceptions.
Production Impact:
For compliance workloads (PCI-DSS, HIPAA), RRO mounts are a requirement. If you claimed “immutable infrastructure” before, now you can actually enforce it.
4. Finer-Grained Authorization Using Selectors (Stable in v1.34)
What It Does:
Authorizers (built-in and webhook) can now make decisions based on field/label selectors, so policies can restrict list/watch/deletecollection requests to specific resources (e.g., only pods bound to a specific node).
Why It Matters:
Previously, RBAC was too coarse. If you granted list pods, users could list ALL pods. Now:
- Restrict list/watch to specific label selectors
- Limit deletecollection operations
- Enforce node-specific access controls
Production Impact:
Multi-tenant clusters can now enforce much tighter isolation. Example: DevOps team A can only list pods with team=A label.
5. Restrict Anonymous Requests to Specific Endpoints (Stable in v1.34)
What It Does:
Anonymous access can be limited to an explicit allowlist of endpoints such as /healthz, /readyz, /livez, reducing the blast radius of RBAC misconfigurations.
Why It Matters:
Before this, RBAC misconfigurations could accidentally expose resources to unauthenticated users. Now:
- Anonymous access is limited to health checks by default
- Accidental RBAC misconfigs don’t expose sensitive APIs
- Attack surface dramatically reduced
Production Impact:
This should be enabled on ALL production clusters. It’s defense-in-depth against RBAC mistakes.
6. Ordered Namespace Deletion (Stable in v1.34)
What It Does:
Namespace deletion now follows a structured order so that pods are removed before dependent resources like NetworkPolicies, mitigating gaps where workloads could continue running without intended network controls.
Why It Matters:
Previously, namespace deletion was unordered. This created security gaps:
- Pods could run briefly without NetworkPolicies
- Security controls disappeared before workloads
- Race conditions allowed policy bypass
Now deletion order is guaranteed: pods first, then policies.
Production Impact:
This closes CVE-2024-7598. If you’re running multi-tenant namespaces with NetworkPolicies, this is critical.
7. User Namespaces for Pods (Beta On-By-Default in v1.35)
What It Does:
Pod-level user namespaces, previously alpha/beta and opt-in, become a more mature hardening option for running root in the pod, unprivileged on the host—improving multitenant isolation.
Why It Matters:
This is the multi-year journey payoff. User namespaces allow:
- Containers run as root inside (legacy apps work)
- Host sees them as unprivileged users
- Container breakout becomes much harder
- Multi-tenant security dramatically improved
Production Impact:
If you’re running untrusted workloads or multi-tenant Kubernetes, user namespaces are now production-ready. Enable them in 1.35.
2026 Preview: What’s Coming Next
Looking at the alpha and beta features in Kubernetes 1.35 gives us a clear indication of what’s likely to graduate to stable in 2026:
1. Harden Kubelet Serving Certificate Validation (Alpha in 1.35)
- Adds API-server check that kubelet’s serving certificate CN matches system:node:
- Closes node-impersonation MitM attacks
- 2026 prediction: Stable by K8s 1.37
2. Constrained Impersonation (Alpha in 1.35)
- Tightens impersonation so impersonating user cannot perform actions they’re not allowed to do
- Reduces risk of over-privileged debug workflows
- 2026 prediction: Beta by K8s 1.36, Stable by 1.38
3. User Namespaces for HostNetwork Pods (Alpha in 1.35)
- Allows hostNetwork: true pods to keep hostUsers: false
- Workloads access host network stack without host user privileges
- 2026 prediction: Beta by K8s 1.37
4. Robust Image Pull Authorization (Beta in 1.35)
- Kubelet can re-verify registry credentials even when images are already cached
- Closes scenarios where pods could reuse pre-pulled images without proper auth
- 2026 prediction: Stable by K8s 1.36 (this will be huge)
5. Pod Certificates for mTLS (Beta Promoted in 1.35)
- PodCertificateRequest API and PodCertificate volume source move to beta
- Makes it easier to issue workload X.509 certificates for first-class mTLS
- 2026 prediction: Stable by K8s 1.37
Practical Implementation: What DevSecOps Teams Should Do Now
Immediate Actions (Q1 2026):
- Upgrade to K8s 1.35+ to get all 2025 stable security features
- Enable sidecar containers if running service meshes or eBPF security tools
- Implement RRO mounts for compliance workloads
- Test user namespaces in pre-production environments
- Enable anonymous request restrictions on all production clusters
Planning for 2026:
- Track robust image pull authorization (beta in 1.35, stable likely 1.36)
- Evaluate Pod certificates for mTLS for zero-trust initiatives
- Prepare for user namespaces on hostNetwork pods if running network-intensive workloads
The Bottom Line: Kubernetes Security Grew Up in 2025
The Honest Takeaways:
✅ Production-ready security is here: No more “alpha features only.” 2025 brought stable, usable hardening.
✅ User namespaces finally work: The multi-year bet paid off. Multi-tenant clusters can now run safely.
✅ Sidecar containers are reliable: Service meshes and security agents no longer hack around Pod lifecycle.
✅ Authorization got granular: RBAC finally has the precision it needed.
✅ 2026 looks even better: Image pull authorization and Pod mTLS certificates will be game-changers.
The Hard Truth:
2025 wasn’t about flashy new features—it was about making existing security capabilities production-grade. User namespaces, sidecar containers, and RRO mounts had been in development for years. 2025 was the year they finally graduated.
2026 will bring the next wave: robust image pull authorization (closing a major container registry attack vector) and native Pod mTLS (enabling true zero-trust without service mesh complexity).
The teams that win in 2026 will be the ones who upgraded to 1.35+ and enabled these stable features in Q1.
Running Kubernetes in production? Which security features are you prioritizing in 2026? Drop your hardening strategies in the comments.