Unsound usages of unsafe implementation about c_void
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Rust
- Estrellas
- 28
- Forks
- 11
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Hi, I am scanning this crate in the latest version using my own static analyzer tool.
Unsafe pointer conversion is found at: src/netmap_user.rs:16
pub unsafe fn _NETMAP_OFFSET<T, U>(ptr: *mut U, offset: isize) -> *mut T {
((ptr as *mut c_char).offset(offset) as *mut c_void) as *mut T
}
This unsound implementation would create memory issues such as overflow, underflow, or misalignment, since the type is converted to c_void (1 byte, 8 bits). The attacker can manipulate the argument offset associated with the c_void pointer with a large value, as well as T and U, which can lead to a buffer overflow bug.
This would cause undefined behaviors in Rust. Adversaries can manipulate the associated arguments to cause memory safety bugs. I am reporting this issue for your attention.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con src/netmap_user.rs:16 y la función _NETMAP_OFFSET; después, revisa los requisitos de Rust sobre comportamiento indefinido para el desplazamiento de punteros sin procesar, la alineación y los límites. Valida el informe del analizador estático frente a los llamadores de la función y determina si la conversión indicada puede producir el problema de seguridad de memoria señalado. Se considera terminado cuando el hallazgo tiene una resolución clara y una verificación adecuada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- rust
- Área
- networking
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 30/100