Publicado el , Última actualización el

El 10 de marzo del 2026 nos escribió un representante de la empresa colombiana Mejor Llama A Cris! (“soluciones digitales de alto impacto”) para señalarnos que habían detectado una vulnerabilidad crítica en la plataforma web de la Superintendencia de Industria y Comercio y nos mandó un reporte detallado de sus hallazgos. En este momento, y gracias a la actitud responsable de esta empresa, nuestro laboratorio de seguridad digital y privacidad (K+Lab) pudo verificar el reporte. Después de confirmar el riesgo generado por esta vulnerabilidad, e incluso de encontrar otra, contactamos a la SIC, a través de su Delegatura para la Protección de Datos Personales. Ambas vulnerabilidades se pudieron corregir.

Detectar vulnerabilidades e incidentes desde la sociedad civil

Desde el primer análisis de un sitio web del Gobierno por parte de Karisma en 2016, nuestro laboratorio de seguridad digital y privacidad siempre ha intentado mostrar que la sociedad civil es un actor importante que el Estado debe tener en cuenta para mejorar la seguridad digital de sus sistemas en beneficio de todos los ciudadanos. Lo hemos hecho a través de análisis y reportes de vulnerabilidades e incidentes concretos, de incidencia, de conferencias y de publicaciones. Sin ser exhaustivos, podemos mencionar estas publicaciones que esbozan este largo camino: 

En particular esta es la segunda vez que se detectan vulnerabilidades en sistemas de la SIC. En el 2021, habíamos mandado un reporte de análisis sobre la aplicación SIC a la Mano. Esto permitió corregir una vulnerabilidad cuya explotación también permitía acceder a datos personales de las personas usuarias. 

El ejemplo que analizamos en este artículo es muy interesante porque involucró:

  • una empresa de consultoría en soluciones digitales (Mejor Llama A Cris!). Al inicio la empresa prefería guardar el anonimato, esperando cuál iba a ser la actitud de la SIC y la resolución de la vulnerabilidad,
  • Fundación Karisma, quien sirvió como intermediario en el proceso y revisor de la falla de seguridad detectada,
  • la Delegatura para la Protección de Datos Personales quien fue nuestro punto de contacto en la SIC.

Al final, esta colaboración permitió corregir prontamente una vulnerabilidad crítica que hubiera podido exponer datos personales de muchas personas.

Una vulnerabilidad que permitía acceder a expedientes y datos personales de cualquier persona

La vulnerabilidad, detectada inicialmente por Mejor LLama a Cris, afectaba la plataforma de servicios en línea de la SIC. El reporte que nos mandó mencionaba que “La vulnerabilidad permite a cualquier usuario autenticado de la plataforma enumerar y acceder a expedientes jurisdiccionales de terceros”. Después de verificar el reporte y analizar la plataforma, nos dimos cuenta de que efectivamente era algo serio y de que, además, existía otra vulnerabilidad similar que permitía acceder a los datos personales de las personas registradas en la plataforma. 

Las vulnerabilidades se localizaban en estas URL (endpoints), que hoy en día ya no se usan:

Las vulnerabilidades se debían a que cuando se iba a buscar un documento o los datos de la persona usuaria, el sistema no verificaba que este documento o estos datos pertenecieran a quien estaba conectada y autenticada. Esto permitía a cualquier persona usuaria autenticada (con conocimientos técnicos) acceder a expedientes jurisdiccionales de terceros. El sistema validaba correctamente que el usuario tuviera sesión activa, pero no verificaba que el objeto solicitado le pertenecía. Lo mismo ocurría con los datos personales asociados a un perfil, cualquier persona con un acceso a la plataforma (no había restricción para crear un perfil ) podía acceder a expedientes, nombres, cédulas y documentos privados de otros ciudadanos y empresas simplemente modificando el identificador en la petición. Se trata de vulnerabilidades del tipo Broken Object Level Authorization (BOLA) e Insecure Direct Object Reference (IDOR). 

Técnicamente, en este caso, funcionaba así:

  1. En el primer caso (expedientes), una modificación del contenido de la solicitud HTTPS/POST con otro identificador de documento, mandando un paquete HTTPS como el que sigue, podría generar una respuesta del servidor con el documento correspondiente al ID.
Ejemplo de solicitud HTTPS mandada por un atacante potencialRespuesta del servidor
POST /api-sajur-partes/expediente/consultar
Authorization: Bearer TOKEN_VÁLIDO [se entrega al conectarse]
Content-Type: applicatio


{"id": [ID_SECUENCIAL]}
El servidor podía responder con un link de acceso al documento (expediente jurisdiccional) asociado a este ID.

2. En el segundo caso (datos de la persona usuaria), sólo hacía falta modificar el contenido de una solicitud HTTPS/POST cambiando el número de cédula por otro.

Ejemplo de solicitud HTTPS mandada por un atacante potencialRespuesta del servidor
POST

/api-sajur-partes/persona/consulta

Authorization: Bearer TOKEN_VÁLIDO [se entrega al conectarse]
Content-Type: application/json

{"persona":{"tipoDocumento":"CC","numeroDocumento":"XXXX","retornarSoloUltimosDatos":true}}
El servidor podía responder con los datos de la persona que corresponde al número de documento.

En el caso de los expedientes, se usaban identificadores incrementales, y en el caso de personas, su número de cédula. De esta manera, cambiando el identificador del documento o el número de cédula de la persona se podía acceder a documentos o datos de otra persona, sólo teniendo el token de acceso y las cookies de sesión ya entregadas por el sistema.

Unas recomendaciones y una conclusión

En su reporte detallado, la empresa Mejor Llama A Cris! también envió recomendaciones de mitigación que fueron transmitidas a la SIC,  a las que añadimos solo una. Son recomendaciones importantes, algunas de alcance general, que pueden ayudar a otras entidades a proteger sus sistemas y corregir vulnerabilidades como estas: 

  1. Implementar validación de autorización a nivel de objeto en cada consulta al API.
  2. Verificar que la vulnerabilidad no esté presente en otras partes (endpoints).
  3. Reemplazar IDs secuenciales o predecibles como el de la cédula por UUIDs no enumerables.
  4. Implementar autenticación obligatoria para acceso a expedientes y datos personales.
  5. Agregar rate limiting y detección de enumeración automatizada.
  6. Implementar procesos de detección y de análisis de logs.

Aún hace falta proteger a quienes encuentran vulnerabilidades

Estos procesos coordinados de divulgación de vulnerabilidades (Coordinated Vulnerability Disclosure) , de fugas de datos y de otros tipos de incidentes digitales tienen tres objetivos principales: 

  1. Permitir una resolución pronta del problema por la entidad responsable del sistema afectado.
  2. Avisar a las personas potencialmente afectadas cuando haya incidentes.
  3. Una vez resueltos, hacer avanzar el conocimiento en seguridad digital con la publicación y difusión de conocimiento, incluyendo recomendaciones como las que aquí compartimos.

Nos alegra que, en este caso, la actitud responsable del descubridor y la confianza que depositó en Karisma, junto con el canal que teníamos con la Delegatura de Protección de Datos de la SIC, hayan permitido la solución oportuna del problema. Esto evita que una vulnerabilidad se convierta en una filtración de información y datos personales sensibles. 

Este caso demuestra que los canales de comunicación entre la sociedad civil y las entidades del Estado son fundamentales para resolver vulnerabilidades antes de que se conviertan en filtraciones. Sin embargo, su existencia no puede depender de relaciones informales o de la suerte; todas las entidades del Estado deberían contar con canales formales y políticas claras para recibir reportes de vulnerabilidades, fugas de datos e incidentes digitales. Ahora bien, los canales no son suficientes si quienes los usan enfrentan riesgos legales, por eso consideramos necesario que la legislación reconozca el hacking ético y la investigación responsable en seguridad digital como excepciones a las leyes de delitos informáticos, para que de esta manera investigadores y sociedad civil puedan contribuir a la seguridad digital del Estado sin temor a consecuencias jurídicas. 

Finalmente, reiteramos que, mientras no exista una ruta institucional de divulgación de vulnerabilidades que garantice la protección de quienes encuentran estos problemas de seguridad, Karisma seguirá actuando como intermediario de confianza en procesos de divulgación responsable de vulnerabilidades, fugas de datos e incidentes digitales que puedan afectar a la sociedad civil y a los ciudadanos.

Puede contactar el K+Lab por Signal o por correo electrónico, preferiblemente cifrado (ver nuestra llave PGP abajo):

  • Signal: k_lab.08
  • Correo electrónico: klab[at]karisma.org.co
Llave PGP KLAB
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
jLHbBDq9Gs/UepJJ7ryUOy0=
=B86O
-----END PGP PUBLIC KEY BLOCK-----