Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2026-46331-audit — cve-2026-46331-script de auditoría | Kitploit
Herramientas/GitHubGitHub/quaerendir/cve-2026-46331-audit
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónAnálisis ForensePapers e InvestigaciónAprendizaje y EducaciónRespuesta a Incidentes
GitHubquaerendir/cve-2026-46331-audit

cve-2026-46331-audit

cve-2026-46331-script de auditoría

Ver Repositorio
3hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

cve-2026-46331-audit

Script de auditoría de solo lectura para CVE-2026-46331 (también conocido como pedit COW) — un error parcial de copia en escritura en la acción act_pedit del subsistema net/sched del kernel de Linux que permite a un usuario local no privilegiado corromper la memoria caché de páginas y escalar a root.

root@kitploit:~
   ____  _____ ____ ___ _____      ____ _____        __
  |  _ \| ____|  _ \_ _|_   _|    / ___/ _ \ \      / /
  | |_) |  _| | | | | |  | |     | |  | | | \ \ /\ / /
  |  __/| |___| |_| | |  | |     | |__| |_| |\ V  V /
  |_|   |_____|____/___| |_|      \____\___/  \_/\_/
     CVE-2026-46331    net/sched act_pedit partial COW

Resumen

tcf_pedit_act() calcula el rango COW para skb_ensure_writable() una vez antes del bucle de claves, usando tcfp_off_max_hint. Las claves tipadas añaden un desplazamiento de cabecera en tiempo de ejecución que la pista no cubre, por lo que parte de la escritura final queda fuera de la región COW. Resultado: las páginas compartidas de caché de páginas se sobrescriben y un binario setuid en caché (objetivo clásico: /bin/su) puede envenenarse en memoria. Los hashes en disco permanecen limpios. Los monitores de integridad de archivos no lo detectarán.

Misma familia de errores que Dirty COW (CVE-2016-5195), Dirty Pipe (CVE-2022-0847), Copy Fail (CVE-2026-31431) y Dirty Frag (CVE-2026-46300). El punto de entrada es diferente, la falla de propiedad de páginas es la misma.

Qué hace este script

Triaje estrictamente de solo lectura. Nunca carga un módulo, nunca toca sysctl, nunca ejecuta una prueba de concepto. Diseñado para ser seguro de ejecutar en producción.

  • Inventaria el kernel en ejecución, la distribución y la versión del paquete del kernel.
  • Sonda la accesibilidad de act_pedit a través de cuatro señales independientes:
    • cargado actualmente (lsmod)
    • cargable bajo demanda (modinfo)
    • compilado en el kernel en ejecución (/boot/config-$(uname -r), /proc/config.gz, modules.builtin)
    • bloqueado por una lista negra o una anulación install ... /bin/true en modprobe.d
  • Lista las reglas tc action pedit existentes (solo informativo; sin cambios).
  • Lee los portales de espacios de nombres de usuario: user.max_user_namespaces, kernel.unprivileged_userns_clone y las restricciones de AppArmor para espacios de nombres de usuario en Ubuntu.
  • Matriz de parches de proveedores heurística según /etc/os-release (RHEL 8/9/10, Debian 11/12/13/14, Ubuntu 18.04→26.04, SUSE, Amazon Linux, Arch-family rolling).

Uso

root@kitploit:~
sudo ./cve-2026-46331-audit.sh                       # informe de texto completo
sudo ./cve-2026-46331-audit.sh --json                # JSON legible por máquina, sin banner
sudo ./cve-2026-46331-audit.sh --quiet --no-hunt     # veredicto de una línea para escaneos masivos
sudo ./cve-2026-46331-audit.sh --since 2026-06-01    # ampliar ventana de búsqueda de IoC
sudo ./cve-2026-46331-audit.sh --no-banner           # informe de texto sin el banner ASCII

Códigos de salida

Ejemplo de salida

Consulte examples/sample-output.txt para una ejecución completa y examples/sample-output.json para el formato JSON.

Modelo de puntuación de riesgo

La puntuación es una combinación ponderada de:

Limitado a 100. Cualquier valor por encima de ~70 debe tratarse como urgente en nodos multiinquilino / CI / Kubernetes; por debajo de ~20 suele ser una confirmación de que el host está bien.

Despliegue masivo

Ansible

root@kitploit:~
ansible -i inventory all -m script \
  -a "cve-2026-46331-audit.sh --json --quiet --no-hunt" \
  --become \
  | tee /tmp/audit.jsonl

Luego agregue con jq:

root@kitploit:~
grep -v '^[a-z]' /tmp/audit.jsonl | jq -s 'group_by(.verdict) | map({verdict: .[0].verdict, hosts: length})'

Failed_when en un play

root@kitploit:~
- name: auditar CVE-2026-46331
  ansible.builtin.script: cve-2026-46331-audit.sh --quiet --no-hunt
  register: audit
  failed_when: audit.rc == 2
  changed_when: false

Mitigaciones (si necesita retrasar el parche)

En orden de preferencia. El script recomendará la correcta según lo que haya encontrado.

root@kitploit:~
# Opción 1: bloquear act_pedit si no lo usa.
tc actions list action pedit                  # DEBE estar vacío antes de hacer esto
echo 'install act_pedit /bin/true' | sudo tee /etc/modprobe.d/disable-act_pedit.conf
lsmod | grep -q act_pedit && sudo rmmod act_pedit
root@kitploit:~
# Opción 2: restringir espacios de nombres de usuario no privilegiados.
# Romperá Podman/Docker sin raíz, entornos aislados del navegador, Flatpak, unshare sin privilegios, algunos entornos aislados de CI.
sudo sysctl -w user.max_user_namespaces=0           # familia EL
sudo sysctl -w kernel.unprivileged_userns_clone=0   # Debian/Ubuntu

La verdadera solución es una actualización del kernel del proveedor y un reinicio. uname -r después del reinicio es lo único que lo prueba.

Contexto de la familia de errores

Esta es la quinta iteración del mismo fallo arquitectónico. Cada una corrigió la causa inmediata, ninguna corrigió la causa raíz: rutas rápidas de copia cero que comparten páginas a través de límites de propiedad, donde cada escritor debe probar la privacidad antes de mutar bytes, en cientos de sitios de llamada.

Rust en el kernel aborda exactamente esta clase mediante tipos de propiedad. No aparecerá en net/sched mañana.

Referencias

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-46331
  • Red Hat: https://access.redhat.com/security/vulnerabilities/RHSB-2026-008
  • Ubuntu: https://ubuntu.com/security/CVE-2026-46331
  • Debian: https://security-tracker.debian.org/tracker/CVE-2026-46331
  • Commit y descripción aguas arriba: consulte las referencias del registro NVD.

Licencia

MIT. Consulte LICENSE.

Aviso legal

Para uso defensivo autorizado en sistemas de su propiedad o para los que tenga permiso explícito de auditoría. El script nunca ejecuta la prueba de concepto pública, nunca modifica el estado del sistema y nunca carga módulos. Trate el veredicto como triaje, no como prueba de compromiso o de seguridad.

Descargar herramienta
CVECVE-2026-46331
ComponenteKernel de Linux net/sched / act_pedit
ClaseCOW parcial → corrupción de caché de páginas → escalada local de privilegios
Vector de ataqueLocal (CAP_NET_ADMIN, normalmente adquirido a través de un espacio de nombres de usuario no privilegiado)
Afectado aguas arriba5.18 .. 7.1-rc6
Parche aguas arriba7.1-rc7
Prueba de concepto públicapacket_edit_meme (verificado en RHEL 10, Debian 13, Ubuntu 24.04.4)
Severidad Red HatImportante
CVSS 3.1 SUSE7.8 (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
  • Búsqueda opcional de IoC de comportamiento mediante auditd y journalctl (ventana configurable mediante --since).
  • Puntuación de riesgo de 0 a 100 y un veredicto final: PATCHED / NOT_APPLICABLE / MITIGATED / VULNERABLE / UNKNOWN.
  • Códigos de salida diseñados para orquestación de flotas.
  • CódigoSignificado
    0PATCHED o NOT_APPLICABLE (el kernel es anterior al error)
    1MITIGATED (mitigación activa, kernel aún vulnerable, aplicar parche de todas formas)
    2VULNERABLE (una o más condiciones previas cumplidas, sin kernel parcheado)
    3UNKNOWN (tratar como sospechoso en entornos compartidos / CI / Kubernetes)
    4ERROR (el script no pudo ejecutarse; faltan herramientas o entorno incorrecto)
    SeñalPeso
    Veredicto del proveedor VULNERABLE+50
    Veredicto del proveedor UNKNOWN+30
    act_pedit compilado en el kernel+25
    act_pedit cargable, sin anulación+20
    act_pedit cargable, anulación activa+5
    act_pedit cargado actualmente+5
    Espacio de nombres de usuario no privilegiado alcanzable, sin portal AppArmor+15
    Espacio de nombres de usuario no privilegiado alcanzable, portal AppArmor activo+8
    IoCs encontrados en la ventana de búsqueda+10
    CVEAñoSubsistemaPrimitiva
    CVE-2016-51952016mmCondición de carrera COW en mapeo de solo lectura
    CVE-2022-08472022pipe / spliceFuga de indicador pipe_buffer en caché de páginas
    CVE-2026-314312026crypto AF_ALG/AEADCriptografía in-place sobre caché de archivos de solo lectura
    CVE-2026-463002026XFRM ESP-in-TCPPérdida de marcador de fragmento compartido skbuff
    CVE-2026-463312026net/sched act_peditCOW parcial por desplazamiento de clave tipada resuelto tarde