Liam R.

United Kingdom · Freelance Penetration Tester · Self-Employed

University of Glasgow

158 followers

About

Senior Penetration Tester and Principal Security Consultant with over 29 years of experience in offensive security, including a long tenure as a CESG CHECK Team Leader. Specialist in infrastructure, web application, cloud, and OT security assessments for UK Government, MOD, and global commercial sectors. Expert in manual testing excellence, custom security tool development, and technical leadership.

Specialties

  • AI / ML Security
  • Cloud Security
  • Kubernetes Security
  • Penetration Testing
  • Web Application Testing

Skills

  • Web Application Penetration Testing
  • Infrastructure Penetration Testing
  • Cloud Security (AWS, Azure, M365)
  • OT / ICS / CNI Assessments
  • OSINT
  • Python
  • PHP
  • Bash
  • Ansible
  • C#

75 skills in total

Experience

  • Freelance Penetration Tester

    Self-Employed

    Jan 2024 — Present

    Remote / UK

  • Senior Security Consultant

    Resillion (formerly Commissum)

    Jan 2023 — Jan 2024

  • Principal Security Consultant

    Pentura Ltd / Intelisecure EMEA / Rootshell Security Ltd

    Jan 2015 — Jan 2023

26 experiences in total

Education

  • University of Glasgow

    BACHELOR

    Oct 1995 — Oct 1996

  • University of Aberdeen

    MASTER

    Oct 1990 — May 1994

Recent posts

container_escape_audit.sh v4.8.4 — built for the kernels Kubernetes actually runs on

An update to the read-only container-escape and LPE auditor, focused on the Linux distributions you actually find under Kubernetes nodes, plus two fresh CVEs.

Node-OS coverage. The CVE engine now derives a vendor alias from /etc/os-release’s ID_LIKE, so CloudLinux, Rocky, AlmaLinux and Oracle Linux resolve to the right vendor tracker instead of returning an unhelpful “unknown”. On a CloudLinux node, the recent container escapes, ncluding the actively-exploited CVE-2026-80521 now correctly defer to the vendor advisory rather than going dark.

Kernel live-patching awareness (new check 62). KernelCare, Canonical Livepatch, kpatch and Ksplice all patch CVEs without changing uname -r, the blind spot in every version-based scanner. Check 62 detects the agent, reads the effective patch level, and flags every version-based verdict as “confirm via the live-patch tool, not uname.”

Two new CVEs:

CVE-2026-43501 “Route of Root”: IPv6 RPL segment-routing-header corruption; LPE and container escape via core_pattern. Successor to Route of Death. Public kernelCTF exploit.

CVE-2025-39964: AF_ALG concurrent-write race; container escape to host root in kernelCTF. Distinct from Copy Fail despite the shared subsystem. CVSS scored honestly (disputed 5.5–7.8; encoded at Red Hat’s 7.3).

Read-only throughout.

github.com/liamromanis101/K8s-container_escape_audit

#ContainerSecurity #Kubernetes #LinuxSecurity #DevSecOps #CVE

View post

container_escape_audit.sh v4.8.2:

check 30 expanded from 8 → 26 RBAC probes, closing every gap we identified:

* Escalation self-grant: escalate on roles/clusterroles, plus create clusterrolebindings and create rolebindings alongside the existing bind.

* Full impersonation set: impersonate groups (so system:masters = instant cluster-admin is now caught) and impersonate serviceaccounts, not just users.

* Node API: nodes/proxy (kubelet on every node).

* Workload-controller family: create/patch deployments, create statefulsets/replicasets/jobs/cronjobs/replicationcontrollers.

* Own-namespace pod creation (not just kube-system), plus the secondary set (get configmaps, pods/log, pods/portforward).

View post

container_escape_audit.sh v4.8.1 — now detecting the DepthFirst container escapes.

Following DepthFirst's "Containers Are No Longer a Security Boundary" disclosure (Sept 22), the read-only container-escape/LPE auditor now covers both kernel bugs from it:

CVE-2026-80521 — an AF_UNIX garbage-collector use-after-free that lets an unprivileged process in a default Docker/Kubernetes container escape to root on the host. There's a public exploit, and Ubuntu 22.04/24.04/26.04 (including AWS/Azure/GCP kernels) were still unpatched at disclosure. It's reachable through ordinary AF_UNIX operations that seccomp and namespaces don't block — so it's the kind of thing "we run non-root, we're fine" doesn't save you from.

CVE-2026-52910 — the sibling reuseport cBPF RCU use-after-free from the same disclosure.

CVE database is now 53 entries; the tool stays strictly read-only (no writes, no exploitation) and version-checks with distro-aware, defer-to-vendor verdicts rather than naive kernel comparisons. Number of checks in the script has increased to 60.

github.com/liamromanis101/K8s-container_escape_audit

#ContainerSecurity #Kubernetes #LinuxSecurity #CVE #DevSecOps

View post

K8s-container_escape_audit v4.8.0 Released

CVE database: 43 → 51 entries (done as conf-only work under v4.7.9, then bundled into the v4.8.0 release)

xfrm nat_keepalive double-free (CVE-2026-72137) — local LPE via CAP_NET_ADMIN/userns; scored HIGH/7.8 with the published 9.8 secondary CVSS corrected down (it's local, not remote).

runc trio promoted to first-class entries — CVE-2025-31133, -52565, -52881 (were behavioural-only via checks 26/52).

ksmbd LPE (CVE-2025-37947) — OOB write, public Doyensec exploit, module-gated.

2024 backdate: io_uring PBUF UAF (CVE-2024-0582) — genuine HIGH LPE, public Exodus exploit.

Two io_uring re-adds at honest LOW — CVE-2025-40364 (vendor-rated DoS) and CVE-2025-21863 (Spectre-v1 hardening).

Removed CVE-2025-21333 — it was a Windows Hyper-V CVE misattributed as Linux (net effect of the io_uring saga: +2 kept, 1 correctly excluded).

The broader framing: relevant escapes/LPEs are now backdated to 2024, and the README's Recent CVEs table was brought to full 51-entry parity (SCTPhantom/Zapscape had been prose-only).

New capability — v4.8.0: --network (check 61)

Opt-in, off by default, first capability that makes outbound connections.

Detects unauthenticated Redis, etcd, Memcached, Docker API, Elasticsearch, MongoDB reachable from the Pod.

Connect-and-identify only — one read-only command, no writes/exploitation.

Severity: etcd + Docker API → CRITICAL, Redis + ES → HIGH, Memcached → MEDIUM, Mongo → LOW (reachability only).

Scoped to localhost + node gateway + injected K8s service endpoints — no arbitrary CIDR sweeps.

https://github.com/liamromanis101/K8s-container_escape_audit

#linux #kubernetes #cks #redis #docker #cve

View post

container_escape_audit.sh — recent updates (v4.7.9)

A quick update on the read-only container-escape and privilege-escalation auditor for Linux and Kubernetes nodes — a single Bash script, no dependencies, makes zero changes to the host it runs on.

The last few releases have pushed on two fronts: depth and accuracy.

Mandatory access control, done properly. The AppArmor/SELinux checks no longer just answer "is it enabled?" They now report how it's confining you — AppArmor complain mode (logs violations but blocks nothing, so it looks protected while enforcing nothing), SELinux domain and MCS separation (spc_t / unconfined_t vs a properly confined container_t), and whether a MAC module is actually loaded in the active kernel stack.

KVM/x86 exposure (v4.7.9). A new read-only probe for the x86 KVM shadow-MMU escapes (Zapscape, Januscape). The detail most write-ups skip: on RHEL, AlmaLinux, Rocky and CloudLinux, /dev/kvm is world-writable (0666) — so these are a direct unprivileged-to-root LPE, and a container escape wherever /dev/kvm is exposed, not the nested-virt-only issue they're usually described as.

CVE coverage kept current, and scored honestly. Recent additions include SCTPhantom (CVE-2026-64564) and the xfrm nat_keepalive double-free (CVE-2026-72137). On the latter we deliberately corrected the published 9.8 "remote" secondary score down to a realistic 7.8 local LPE — the free is on the local transmit path, not remotely reachable. A scanner that parrots an inflated CVSS is worse than one that says nothing.

Read-only throughout. Feedback and PRs welcome.

github.com/liamromanis101/K8s-container_escape_audit

#ContainerSecurity #Kubernetes #LinuxSecurity #DevSecOps #CVE

View post

View Liam R.'s profile on Cyberr