Continúa el debate sobre TCP hole punching para que los nodos domésticos detrás de routers sean accesibles. También se aborda un borrador de BIP para estandarizar las políticas de gasto aplicadas por cofirmantes al emular covenants.
Greg Sanders, Antoine Poinsot, Elias Rohrer, Oleksandr Kurbatov y Nishant Bansal acompañan a los presentadores de Optech en el repaso del #429, que arranca con Bitcoin Core #36665, #36667 y #36669 y sigue con la nueva política de seguridad. Más adelante llegan los pagos silenciosos multiparte, una vulnerabilidad DoS revelada en Core Lightning y Eclair 0.14.6; la transcripción sigue pendiente.
Un anuncio de canal con el mismo nodo en ambos extremos podía tumbar Core Lightning, de la 25.02 a la 26.04, en cada reinicio, y al atacante solo le costaba las comisiones on-chain; la corrección llegó en la 26.04.1. El boletín #429 recoge además el protocolo de Oleksandr Kurbatov para entradas multiparte en pagos silenciosos y las versiones menores más rápidas de Bitcoin Core cuando un fallo es fácil de descubrir.
Fingiendo que no admite los pings de BIP 31, un par malicioso podía esquivar la desconexión a los 20 minutos y leer despacio, con lo que la cola de envío del nodo engordaba hasta 2 MB por hora por cada par entrante y 5 MB por cada saliente. CVE-2026-117349, de gravedad media, queda resuelto con #36667 en Bitcoin Core 32.1, 31.2, 30.4 y 29.5; los nodos con -blocksonly estaban mucho menos expuestos.
La vigilancia de excepciones de socket funciona ya igual con poll() que con select() en Bitcoin Core 29.5 (#36665), y los pares con el envío en pausa quedan sujetos a un tiempo límite (#36667). Las posiciones de flatfile pasan a enteros de 64 bits (#36669), los nodos dan por hecho v2transport en las direcciones obtenidas de semillas y desaparece una semilla DNS.
Un minero podría hacer crecer un archivo undo de Bitcoin Core por encima de 4 GiB, desbordar sus posiciones de 32 bits y corromper datos, de modo que los nodos se apagan si luego llega la reorganización adecuada; Windows y los sistemas de 32 bits fallan a los 2 GiB, sin necesidad de reorganización. CVE-2026-117346 tiene gravedad baja y exigiría alrededor de un mes de todos los bloques de la red. Las versiones 32.1, 31.2, 30.4 y 29.5 lo corrigen en sistemas de 64 bits; los nodos de 32 bits y el almacenamiento de bloques en FAT32 siguen afectados.
Un par conectado podía tumbar nodos en Windows, macOS y BSD enviando datos urgentes de TCP, que se colaban por las lecturas en pausa del backend select() y acumulaban memoria sin límite (CVE-2026-117350). En Linux los nodos usan poll() y no se ven afectados. Bitcoin Core 32.1, 31.2, 30.4 y 29.5 corrigen este fallo de gravedad media, detectado por un análisis con un LLM dentro de Project Loupe.
Bitcoin Core 30.4 deja de interpretar los bits 5 a 28 de BIP 9 como señales de soft fork, en línea con BIP 323, de modo que los bloques que los activan ya no disparan avisos de despliegues desconocidos (#34779). En la parte de red, los pares con el envío en pausa quedan sujetos a un tiempo límite (#36667), y las posiciones de flatfile pasan a enteros de 64 bits (#36669).
La difusión privada ya tiene un tope en Bitcoin Core 31.2: la cola de transacciones que la red aún no ha devuelto se detiene en 10.000 entradas y, una vez llena, rechaza nuevos envíos, así que toca vaciarla con abortprivatebroadcast (#35406). Los bits de versión 5 a 28 dejan de contar como señales de soft fork, conforme a BIP 323.
La difusión privada de Bitcoin Core 32.1 ya no corre el riesgo de exponer la IP del remitente, algo que podía ocurrir cuando una conexión v2 fallida se reintentaba por v1 de forma directa, sin pasar por Tor. El valor predeterminado de -maxconnections sube de 125 a 200, y el envío de transacciones se limita con una cola global en vez de por par.