Como cualquier otro sistema, necesitamos mantener actualizados también aquellos que ejecutan FreeBSD. Bien sea un equipo físico, virtual o un jail. Además actualizado significa no sólo integrar o instalar nuevas versiones del propio sistema operativo o de los paquetes y software que tiene instalados. También implica mantenerse al tanto de las nuevas vulnerabilidades que impactan a ambos.

Existen varias formas de hacer esto. Una de ellas, viene por defecto con el sistema, y es el enviar un correo electrónico al usuario root diaria y semanalmente con el resultado de la auditoría interna que se realiza a sí mismo. Un ejemplo de uno de estos mail es:

DSRO

Que viene a resumir en este caso que el paquete vulnerable es python-3.9.13.

Para comprobar de qué se trata concretamente, podemos iniciar sesión en el sistema y auditarlo manualmente:

doas pkg audit -F

Y obtendremos en este caso particular:

vulnxml file up-to-date
python39-3.9.13 is vulnerable:
  Python -- multiple vulnerabilities
  WWW: https://vuxml.FreeBSD.org/freebsd/d6d088c9-5064-11ed-bade-080027881239.html

  Python -- multiple vulnerabilities
  CVE: CVE-2020-10735
  WWW: https://vuxml.FreeBSD.org/freebsd/80e057e7-2f0a-11ed-978f-fcaa147e860e.html

  Python -- multiple vulnerabilities
  WWW: https://vuxml.FreeBSD.org/freebsd/050eba46-7638-11ed-820d-080027d3a315.html

3 problem(s) in 1 installed package(s) found.

Las posibles vulnerabilidades del sistema base (el propio FreeBSD), no aparecen en este reporte, para ello existen otras herramientas como freebsd-version, freebsd-update.

Como vemos, nos proporciona referencias par consultar en qué consisten exactamente esas vulnerabilidades. A partir de aquí la solución es sencilla:

doas pkg update

Que resultará en:

Updating FreeBSD repository catalogue...
Fetching packagesite.pkg: 100%    6 MiB   6.6MB/s    00:01    
Processing entries: 100%
FreeBSD repository update completed. 31741 packages processed.
All repositories are up to date.

Para después actualizar los paquetes problemáticos:

doas pkg upgrade python39

Con la salida:

Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
New version of pkg detected; it needs to be installed first.
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
	pkg: 1.19.0 -> 1.19.1_1

Number of packages to be upgraded: 1

7 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/1] Fetching pkg-1.19.1_1.pkg: 100%    7 MiB   7.6MB/s    00:01    
Checking integrity... done (0 conflicting)
[1/1] Upgrading pkg from 1.19.0 to 1.19.1_1...
[1/1] Extracting pkg-1.19.1_1: 100%
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 4 package(s) will be affected (of 0 checked):

Installed packages to be UPGRADED:
	gettext-runtime: 0.21 -> 0.21.1
	libffi: 3.4.2 -> 3.4.4
	python39: 3.9.13 -> 3.9.16_2
	readline: 8.1.2 -> 8.2.0

Number of packages to be upgraded: 4

18 MiB to be downloaded.

Proceed with this action? [y/N]: y
[1/4] Fetching python39-3.9.16_2.pkg: 100%   17 MiB   9.0MB/s    00:02    
[2/4] Fetching libffi-3.4.4.pkg: 100%   36 KiB  36.5kB/s    00:01    
[3/4] Fetching readline-8.2.0.pkg: 100%  343 KiB 350.9kB/s    00:01    
[4/4] Fetching gettext-runtime-0.21.1.pkg: 100%  159 KiB 163.0kB/s    00:01    
Checking integrity... done (0 conflicting)
[1/4] Upgrading libffi from 3.4.2 to 3.4.4...
[1/4] Extracting libffi-3.4.4: 100%
[2/4] Upgrading readline from 8.1.2 to 8.2.0...
[2/4] Extracting readline-8.2.0: 100%
[3/4] Upgrading gettext-runtime from 0.21 to 0.21.1...
[3/4] Extracting gettext-runtime-0.21.1: 100%
[4/4] Upgrading python39 from 3.9.13 to 3.9.16_2...
[4/4] Extracting python39-3.9.16_2: 100%

Con lo que ya tendríamos este problema solucionado.

Esta entrada no es una guía de como realizar la gestión de vulnerabilidades en sistemas personales o empresariales. Simplemente es una guía de comprobación y subsanación de las mismas. Las colecciones de buenas prácticas en este sentido han de seguirse aplicando.