← back
CVE-2023-0386highunder attackCWE-282

CVE-2023-0386

91Vexday Risk Score

Patch now. It under exploitation confirmed by CISA and has a working public exploit.

ssvc Actcvss 7.8epss 7.9%
from disclosure to weapon29 days
Published on NVDMar 22
1st PoC+29d
metasploitMar 22
CISA KEV+818d
exploitation probability
7.9%top 6% of all CVEs
observed exploitation
yesCISA + VulnCheck
31 public exploit(s)
Action required by CISAfederal deadline: 2025-07-08

Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.

Summary

Falha no subsistema OverlayFS do kernel Linux permite que um usuário local, dentro de um namespace de usuário sem privilégios, faça 'copy-up' de um arquivo com capabilities do Linux a partir de um mount nosuid para outro mount, preservando as capabilities de forma que ele pode escalar para root no host. É relevante porque a feature que abriu a janela de exploração — mounts de overlayfs sem privilégios — está habilitada por padrão em kernels 5.11+ e é amplamente usada por runtimes de contêiner e ferramentas de sandboxing (ex.: rootless containers), tornando o pré-requisito mais comum do que a descrição sugere.

Technical detail

A vulnerabilidade está na rotina de cópia (copy-up) do OverlayFS, em fs/overlayfs/copy_up.c. Quando um arquivo é promovido do lower dir (camada somente leitura, tipicamente montada com nosuid) para o upper dir (camada gravável, dentro de um mount overlay sem privilégios), o kernel não validava se o uid/gid do arquivo original tinha um mapeamento válido no user namespace do processo que fazia a montagem. CWE-282 (Improper Ownership Management) descreve o problema: a ausência dessa verificação permite que um uid/gid sem mapeamento explícito seja tratado de forma inconsistente com o restante do kernel — por exemplo, com o comportamento do overflow uid (65534) usado por stat(2) quando não há mapeamento.

How it’s exploited

O vetor é 100% local (AV:L) e não requer interação de usuário, mas exige que o atacante consiga criar um user namespace sem privilégios e montar dentro dele um overlayfs — capacidade habilitada por padrão em kernels 5.11+ que suportam 'unprivileged mounts' de overlayfs (introduzida no commit 459c7c565ac3). O atacante posiciona um arquivo com capabilities do Linux (setuid-like via file capabilities) numa camada lower montada nosuid, força o copy-up para a camada upper dentro do seu próprio namespace, e o mapeamento de uid/gid inválido do arquivo resultante permite que as capabilities sejam efetivamente exercidas fora do isolamento pretendido do namespace, concedendo privilégios elevados — potencialmente root — no sistema host.

Versions

Affected
Kernel Linux a partir da série 5.11 (quando a feature de mounts overlayfs sem privilégios foi introduzida pelo commit 459c7c565ac3) até versões anteriores à aplicação do commit de correção. Debian: linux-5.10 antes de 5.10.179-1~deb10u1 (buster/LTS) e linux antes de 4.19.316-1 (ELTS).
Fixed in
Corrigido pelo commit 4f11ada10d0a de Miklos Szeredi, mesclado no upstream em 2023-01-27, com backport indicado para branches estáveis desde a v5.11. No Debian: linux-5.10 5.10.179-1~deb10u1 (DLA-3446-1) e linux 4.19.316-1 (DLA-3840-1); a versão específica do pacote corrigido via DSA-5402 (Debian stable) não constava no material lido — consulte o DSA-5402 diretamente.

How to protect

A correção definitiva é o commit 4f11ada10d0a (fs/overlayfs/copy_up.c), que passou a checar kuid_has_mapping()/kgid_has_mapping() no user_ns atual antes do copy-up e retorna -EOVERFLOW se o uid/gid não tiver mapeamento válido, alinhando o comportamento ao de 'cp -a' e às ACLs POSIX. O patch foi marcado para stable (Cc: stable@vger.kernel.org # v5.11), ou seja, deve ser backportado a qualquer branch estável a partir da 5.11, onde a feature de overlayfs sem privilégios foi introduzida. Como paliativo quando a atualização não é imediata, restringir ou desabilitar a criação de user namespaces sem privilégios (parâmetro de sysctl que controla unprivileged_userns_clone, quando disponível na distribuição) reduz a superfície de exploração, mas quebra funcionalidade de contêineres rootless e sandboxes que dependem disso — não é mitigação gratuita.

How to detect

Não há assinatura de rede confiável, pois a exploração é inteiramente local. Em auditoria de sistema, sinais possíveis incluem chamadas de syscall mount com fstype 'overlay' originadas por processos não-root dentro de user namespaces recém-criados (visível via auditd com regras para mount/unshare/clone com CLONE_NEWUSER), tentativas de copy-up envolvendo arquivos com capabilities extraídos de mounts nosuid, e negações de MAC (SELinux/AppArmor) relacionadas a operações em overlayfs, se essas políticas estiverem ativas. A presença de módulo Metasploit e PoC pública facilita replicação em ambientes de teste, mas não fornece um IOC de rede ou log padronizado.

Researched and written with AI from the vendor advisory and public analysis, with the sources above. Always confirm the fixed version in the official advisory before acting.
A flaw was found in the Linux kernel, where unauthorized access to the execution of the setuid file with capabilities was found in the Linux kernel’s OverlayFS subsystem in how a user copies a capable file from a nosuid mount into another mount. This uid mapping bug allows a local user to escalate their privileges on the system.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Affected products
n/a · Kernel
public PoCs found31
githubgithub.com/xkaneiki/CVE-2023-0386420githubgithub.com/chenaotian/CVE-2023-0386124githubgithub.com/sxlmnwb/CVE-2023-038651githubgithub.com/Fanxiaoyao66/CVE-2023-038621githubgithub.com/puckiestyle/CVE-2023-038618githubgithub.com/veritas501/CVE-2023-038610githubgithub.com/P4x1s/CVE-2023-03864githubgithub.com/Satheesh575555/linux-4.19.72_CVE-2023-03864githubgithub.com/orilevy8/cve-2023-03861githubgithub.com/julianertle/CVE-2023-0386-CTF0githubgithub.com/letsr00t/CVE-2023-03860githubgithub.com/churamanib/CVE-2023-03860githubgithub.com/EstamelGG/CVE-2023-0386-libs0githubgithub.com/dragosbanica/CVE-2023-0386_POC0githubgithub.com/karimelsheikh1/HTB-TwoMillion-Writeup0githubgithub.com/anxs3c/TwoMillion-Machine0vulncheckvulncheck.com/xdb/708dfdecb126unverifiedvulncheckvulncheck.com/xdb/917dedee61f9unverifiedvulncheckvulncheck.com/xdb/8e83ff46f752unverifiedvulncheckvulncheck.com/xdb/6fd75a13aef7unverifiedvulncheckvulncheck.com/xdb/84dd9b75426funverifiedvulncheckvulncheck.com/xdb/cee2b1a019b8unverifiedvulncheckvulncheck.com/xdb/6b752e342371unverifiedvulncheckvulncheck.com/xdb/8bb70e7dbfc7unverifiedvulncheckvulncheck.com/xdb/c79ab92abc39unverifiedvulncheckvulncheck.com/xdb/25bf65fa10ffunverifiedvulncheckvulncheck.com/xdb/6278e1e62115unverifiedvulncheckvulncheck.com/xdb/14fb1eaa3bcaunverifiedvulncheckvulncheck.com/xdb/9d683f411803unverifiedvulncheckvulncheck.com/xdb/81fd83df2618unverifiedcve_referencepacketstormsecurity.com/files/173087/Kernel-Live-Patch-Security-Notice-LSN-0095-1.htmlunverified
⚠ Public resources, to assess the exposure of systems you control or are authorized to test. Test only with authorization.