Glossary
Read-Only Reentrancy
Una variante de reentrancy donde un atacante, en una ventana de estado inconsistente, explota una función view que devuelve datos obsoletos sin reentrar ninguna función que cambie el estado.
La read-only reentrancy explota funciones view (solo lectura) que
devuelven datos obsoletos mientras otra operación aún está a mitad de
ejecución. Los guards clásicos nonReentrant protegen las funciones
que cambian el estado, pero dejan los getters sin protección. Así, un
atacante puede disparar un callback durante una operación — como
retirar liquidez de un pool al estilo Curve — y, desde ese callback,
llamar a un getter de precio o de participación que lee un estado a
medio actualizar. Los protocolos posteriores que confían en ese
getter, como mercados de préstamo y vaults, pueden quedar mal
valorados y ser drenados.
Una oleada de incidentes en 2022 contra mercados de préstamo integrados con Curve dio a conocer esta clase. Las defensas incluyen extender el lock de reentrancy a las funciones view, o comprobar el estado del lock del pool antes de leer un valor reportado.