Errores lógicos, vulnerabilidades y malas prácticas en código Python generado por inteligencia artificial: taxonomía y evaluación de técnicas de detección

Autores/as

DOI:

https://doi.org/10.65415/7rhvv450

Palabras clave:

inteligencia artificial generativa, Python, seguridad del software, análisis estático, calidad del código

Resumen

Los asistentes de programación basados en modelos de lenguaje de gran tamaño se han incorporado con rapidez a la formación y a la práctica profesional del desarrollo de software, y Python es uno de los lenguajes en los que más se emplean. La evidencia empírica acumulada muestra, sin embargo, que el código que producen puede contener errores lógicos, vulnerabilidades de seguridad y malas prácticas que no siempre son evidentes para quien lo recibe. Este artículo tuvo dos propósitos: organizar en una taxonomía los defectos documentados en código Python generado por inteligencia artificial y evaluar qué técnicas de verificación permiten detectarlos. Se siguió un enfoque mixto en dos fases. En la primera se realizó una revisión documental de estudios empíricos publicados entre 2022 y 2025. En la segunda se construyó un corpus de 35 casos, cada uno con una versión defectuosa y otra corregida, que reproducen los patrones identificados (10 errores lógicos, 15 vulnerabilidades asociadas a la clasificación CWE y 10 malas prácticas), y se analizó con tres herramientas de análisis estático (Bandit, Ruff y Pylint) y con pruebas derivadas de la especificación. Bandit detectó 13 de las 15 vulnerabilidades, pero ninguno de los errores lógicos; Ruff y Pylint detectaron 3 de los 10 errores lógicos; el recorrido de directorios y la ausencia de control de autorización escaparon a todas las herramientas estáticas y solo fueron evidenciados por pruebas. Se concluye que ninguna técnica aislada basta: la verificación del código generado por inteligencia artificial requiere combinar análisis estático de seguridad y de estilo con pruebas basadas en la especificación y con revisión humana, una combinación que debe enseñarse de forma explícita en los cursos de programación

Descargas

Los datos de descarga aún no están disponibles.

Referencias

Asare, O., Nagappan, M., & Asokan, N. (2023). Is GitHub's Copilot as bad as humans at introducing vulnerabilities in code? Empirical Software Engineering, 28(6), Artículo 129. https://doi.org/10.1007/s10664-023-10380-1

Astral Software. (2026). Ruff (Versión 0.16.8) [Software]. https://docs.astral.sh/ruff/

Becker, B. A., Denny, P., Finnie-Ansley, J., Luxton-Reilly, A., Prather, J., & Santos, E. A. (2023). Programming is hard – or at least it used to be: Educational opportunities and challenges of AI code generation. En Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1 (pp. 500–506). ACM. https://doi.org/10.1145/3545945.3569759

Denny, P., Prather, J., Becker, B. A., Finnie-Ansley, J., Hellas, A., Leinonen, J., Luxton-Reilly, A., Reeves, B. N., Santos, E. A., & Sarsa, S. (2024). Computing education in the era of generative AI. Communications of the ACM, 67(2), 56–67. https://doi.org/10.1145/3624720

Finnie-Ansley, J., Denny, P., Becker, B. A., Luxton-Reilly, A., & Prather, J. (2022). The robots are coming: Exploring the implications of OpenAI Codex on introductory programming. En Proceedings of the 24th Australasian Computing Education Conference (pp. 10–19). ACM. https://doi.org/10.1145/3511861.3511863

Fu, Y., Liang, P., Tahir, A., Li, Z., Shahin, M., Yu, J., & Chen, J. (2025). Security weaknesses of Copilot-generated code in GitHub projects: An empirical study. ACM Transactions on Software Engineering and Methodology, 34(8), 1–34. https://doi.org/10.1145/3716848

Jesse, K., Ahmed, T., Devanbu, P. T., & Morgan, E. (2023). Large language models and simple, stupid bugs. En 2023 IEEE/ACM 20th International Conference on Mining Software Repositories (MSR) (pp. 563–575). IEEE. https://doi.org/10.1109/MSR59073.2023.00082

Khoury, R., Avila, A. R., Brunelle, J., & Camara, B. M. (2023). How secure is code generated by ChatGPT? En 2023 IEEE International Conference on Systems, Man, and Cybernetics (SMC) (pp. 2445–2451). IEEE. https://doi.org/10.1109/SMC53992.2023.10394237

Liu, J., Xia, C. S., Wang, Y., & Zhang, L. (2023). Is your code generated by ChatGPT really correct? Rigorous evaluation of large language models for code generation [Preprint]. arXiv. https://doi.org/10.48550/arXiv.2305.01210

Liu, Y., Le-Cong, T., Widyasari, R., Tantithamthavorn, C., Li, L., Le, X.-B. D., & Lo, D. (2024). Refining ChatGPT-generated code: Characterizing and mitigating code quality issues. ACM Transactions on Software Engineering and Methodology, 33(5), Artículo 116. https://doi.org/10.1145/3643674

MITRE. (2024). 2024 CWE Top 25 most dangerous software weaknesses. https://cwe.mitre.org/top25/archive/2024/2024_top25_list.html

Moradi Dakhel, A., Majdinasab, V., Nikanjam, A., Khomh, F., Desmarais, M. C., & Jiang, Z. M. (2023). GitHub Copilot AI pair programmer: Asset or liability? Journal of Systems and Software, 203, Artículo 111734. https://doi.org/10.1016/j.jss.2023.111734

Negri-Ribalta, C., Geraud-Stewart, R., Sergeeva, A., & Lenzini, G. (2024). A systematic literature review on the impact of AI models on the security of code generation. Frontiers in Big Data, 7, Artículo 1386720. https://doi.org/10.3389/fdata.2024.1386720

Pazmiño Pérez, R. J., Lozano Alvarado, C. I., Solis Gomez, B., & León Pérez, C. (2026). Gobernanza institucional de la inteligencia artificial generativa y comportamiento ético en educación superior: efectos mediadores de la alfabetización en IA y la legitimidad percibida de las políticas. Research Club Scientia, 4(3), 1087–1096. https://doi.org/10.65415/g4d29j67

Pearce, H., Ahmad, B., Tan, B., Dolan-Gavitt, B., & Karri, R. (2022). Asleep at the keyboard? Assessing the security of GitHub Copilot's code contributions. En 2022 IEEE Symposium on Security and Privacy (SP) (pp. 754–768). IEEE. https://doi.org/10.1109/SP46214.2022.9833571

Perry, N., Srivastava, M., Kumar, D., & Boneh, D. (2023). Do users write more insecure code with AI assistants? En Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security (pp. 2785–2799). ACM. https://doi.org/10.1145/3576915.3623157

PyCQA. (2026a). Bandit (Versión 1.9.4) [Software]. https://bandit.readthedocs.io/

PyCQA. (2026b). Pylint (Versión 4.1.2) [Software]. https://pylint.readthedocs.io/

Snyder, H. (2019). Literature review as a research methodology: An overview and guidelines. Journal of Business Research, 104, 333–339. https://doi.org/10.1016/j.jbusres.2019.07.039

Spracklen, J., Wijewickrama, R., Sakib, A. H. M. N., Maiti, A., Viswanath, B., & Jadliwala, M. (2025). We have a package for you! A comprehensive analysis of package hallucinations by code generating LLMs. En Proceedings of the 34th USENIX Security Symposium (pp. 3687–3706). USENIX Association. https://www.usenix.org/conference/usenixsecurity25/presentation/spracklen

Tambon, F., Moradi-Dakhel, A., Nikanjam, A., Khomh, F., Desmarais, M. C., & Antoniol, G. (2025). Bugs in large language models generated code: An empirical study. Empirical Software Engineering, 30(3), Artículo 65. https://doi.org/10.1007/s10664-025-10614-4

van Rossum, G., Warsaw, B., & Coghlan, A. (2001). PEP 8 – Style guide for Python code. Python Software Foundation. https://peps.python.org/pep-0008/

Descargas

Publicado

2026-10-11

Artículos más leídos del mismo autor/a