Un exploit de 0 días es una vulnerabilidad desconocida por el público y, en particular, los programadores de una aplicación en particular.
No quieres confundir eso con mala codificación. Si alguien creara un botón que dijera "Haga clic aquí para obtener acceso de administrador" y otorgaría acceso de administrador, esto no sería una vulnerabilidad de 0 días.
La mayoría de los programadores estarían de acuerdo en que tener este botón sería malo y podría decirle al programador original las implicaciones de su código.
Supongamos hipotéticamente que todos los programadores creen que está bien tener este botón. Por supuesto, sabemos que esto es una vulnerabilidad ahora, pero no lo son en ese momento. Ahora muchos programadores comienzan a incluir este botón con su programa. Un día alguien puede descubrir esto y hacer clic en el botón y obtener instantáneamente acceso de administrador. Esto se consideraría un de 0 días porque nadie más lo sabía.
Meses después, cuando se descubra este botón, eventualmente será parcheado. Si los programadores aún incluyen este botón en sus programas, entonces no es un día de 0 días porque ya no cumple con los criterios de explotación de 0 días porque se conoce .
En el ejemplo de preguntas, Apache tiene un defecto conocido, por lo que no sería un exploit de 0 días. Es conocido por el público.
Ya se sabe que existen vulnerabilidades de SQL a partir de una codificación incorrecta y sin un escape adecuado o al no utilizar consultas parametrizadas. Sin embargo, si encontró una vulnerabilidad de SQL que permitiera la ejecución de declaraciones no deseadas que no se han abordado antes, entonces esto sería un hallazgo.