<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Operations on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/operations/</link>
        <description>Recent content in Operations on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Fri, 15 May 2026 17:55:42 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/operations/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Cómo comprobar CVE-2026-42945: condiciones de Nginx Rift, revisión de versiones y recomendaciones de actualización</title>
        <link>https://knightli.com/es/2026/05/15/nginx-rift-cve-2026-42945/</link>
        <pubDate>Fri, 15 May 2026 17:55:42 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/nginx-rift-cve-2026-42945/</guid>
        <description>&lt;p&gt;&lt;code&gt;CVE-2026-42945&lt;/code&gt; es una vulnerabilidad de seguridad en NGINX Open Source y NGINX Plus. También se la conoce como &lt;code&gt;Nginx Rift&lt;/code&gt;. El problema está en &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt;, y el tipo de vulnerabilidad es heap-based buffer overflow.&lt;/p&gt;
&lt;p&gt;Este tipo de noticia se convierte con facilidad en titulares como &amp;ldquo;oculta durante 18 años&amp;rdquo;, &amp;ldquo;control remoto sin contraseña&amp;rdquo; o &amp;ldquo;30% de servidores afectados&amp;rdquo;. Esas frases se propagan bien, pero al leer los parches y la descripción de NVD conviene separar el riesgo en hechos concretos: el problema es grave y no requiere una cuenta iniciada; pero no todos los Nginx quedan comprometidos automáticamente. Para activarlo hacen falta condiciones específicas de configuración rewrite y de solicitud.&lt;/p&gt;
&lt;h2 id=&#34;empezar-por-la-descripción-oficial&#34;&gt;Empezar por la descripción oficial
&lt;/h2&gt;&lt;p&gt;La descripción de NVD para &lt;code&gt;CVE-2026-42945&lt;/code&gt; puede resumirse así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Afecta a NGINX Plus y NGINX Open Source.&lt;/li&gt;
&lt;li&gt;La vulnerabilidad está en &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;El problema puede activarse cuando una directiva &lt;code&gt;rewrite&lt;/code&gt; va seguida de &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt; o &lt;code&gt;set&lt;/code&gt;, se usan grupos de captura PCRE sin nombre como &lt;code&gt;$1&lt;/code&gt; y &lt;code&gt;$2&lt;/code&gt;, y la cadena de reemplazo contiene un signo de interrogación &lt;code&gt;?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Un atacante no autenticado puede enviar una solicitud construida para activar la vulnerabilidad.&lt;/li&gt;
&lt;li&gt;El resultado puede ser un heap buffer overflow y el reinicio de un proceso worker de NGINX.&lt;/li&gt;
&lt;li&gt;Si ASLR está desactivado en el sistema, la ejecución de código es posible.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;F5, como CNA, asigna estas puntuaciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CVSS v4.0: &lt;code&gt;9.2&lt;/code&gt;, Critical.&lt;/li&gt;
&lt;li&gt;CVSS v3.1: &lt;code&gt;8.1&lt;/code&gt;, High.&lt;/li&gt;
&lt;li&gt;CWE: &lt;code&gt;CWE-122 Heap-based Buffer Overflow&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Así que no se trata de un caso normal de &amp;ldquo;mala configuración que causa un 404&amp;rdquo;. Es una vulnerabilidad de seguridad de memoria cubierta por una corrección oficial de Nginx.&lt;/p&gt;
&lt;h2 id=&#34;qué-afirmaciones-necesitan-contexto&#34;&gt;Qué afirmaciones necesitan contexto
&lt;/h2&gt;&lt;p&gt;Primero, &amp;ldquo;sin contraseña&amp;rdquo; debe entenderse como ataque no autenticado. Es decir, el atacante no necesita entrar a un panel de administración de Nginx, obtener SSH ni tener una cuenta de la aplicación. Pero eso no significa que cualquier Nginx expuesto a internet pueda tomarse sin más.&lt;/p&gt;
&lt;p&gt;Segundo, &amp;ldquo;control remoto directo&amp;rdquo; depende de las condiciones. La formulación oficial más prudente es que la vulnerabilidad puede causar reinicios de procesos worker; en sistemas donde ASLR está desactivado, la ejecución de código es un resultado posible. En entornos con ASLR activado, endurecimiento de compilación de la distribución y permisos de ejecución restringidos, la ruta de riesgo es más compleja.&lt;/p&gt;
&lt;p&gt;Tercero, &amp;ldquo;30% de servidores afectados&amp;rdquo; no debe interpretarse como &amp;ldquo;toda la cuota de mercado de Nginx equivale a superficie expuesta&amp;rdquo;. La exposición real depende de la versión, de si el módulo afectado está presente, de si existe la configuración rewrite concreta, de si la distribución ya aplicó backport del parche y del estado de endurecimiento del entorno donde corre Nginx.&lt;/p&gt;
&lt;p&gt;La forma más precisa de decidirlo es sencilla: si ejecutas Nginx en producción, revísalo pronto; pero no decidas si estás afectado solo por el porcentaje de un titular.&lt;/p&gt;
&lt;h2 id=&#34;cómo-determinar-el-alcance-afectado&#34;&gt;Cómo determinar el alcance afectado
&lt;/h2&gt;&lt;p&gt;Según la información de publicación de nginx.org, las versiones &lt;code&gt;nginx-1.30.1&lt;/code&gt; stable y &lt;code&gt;nginx-1.31.0&lt;/code&gt; mainline publicadas el 13 de mayo de 2026 incluyen varias correcciones de seguridad, entre ellas el buffer overflow de &lt;code&gt;ngx_http_rewrite_module&lt;/code&gt; registrado como &lt;code&gt;CVE-2026-42945&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Si usas código fuente oficial de Nginx o paquetes oficiales, prioriza:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NGINX Open Source stable: actualizar a &lt;code&gt;1.30.1&lt;/code&gt; o posterior.&lt;/li&gt;
&lt;li&gt;NGINX Open Source mainline: actualizar a &lt;code&gt;1.31.0&lt;/code&gt; o posterior.&lt;/li&gt;
&lt;li&gt;NGINX Plus: revisar la versión corregida para la rama correspondiente de F5.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si usas Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, Alpine, imágenes de contenedor, Plesk, paneles de control, Ingress Controller o componentes administrados por un proveedor cloud, no mires solo la versión upstream que muestra &lt;code&gt;nginx -v&lt;/code&gt;. Muchas distribuciones aplican backport de parches de seguridad a versiones antiguas de paquetes. La cadena de versión puede parecer vieja aunque el parche ya esté incorporado.&lt;/p&gt;
&lt;h2 id=&#34;comprobación-de-urgencia-en-un-minuto&#34;&gt;Comprobación de urgencia en un minuto
&lt;/h2&gt;&lt;p&gt;Usa estas preguntas para clasificar el riesgo rápidamente:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;¿Este Nginx está expuesto directamente a internet, o forma parte de un API Gateway, proxy inverso, balanceador de carga o capa de entrada Ingress?&lt;/li&gt;
&lt;li&gt;¿Usas paquetes oficiales de Nginx, compilaciones desde código fuente, paneles de terceros o imágenes de contenedor sin haber confirmado el estado de corrección de &lt;code&gt;CVE-2026-42945&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;¿La configuración contiene reglas &lt;code&gt;rewrite&lt;/code&gt; complejas, especialmente &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt; o &lt;code&gt;set&lt;/code&gt; consecutivos y capturas sin nombre como &lt;code&gt;$1&lt;/code&gt; y &lt;code&gt;$2&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;¿Algún destino rewrite incluye rutas de solicitud, parámetros de consulta u otra entrada controlada por el usuario?&lt;/li&gt;
&lt;li&gt;¿El sistema está poco endurecido, por ejemplo con ASLR desactivado, workers con demasiados privilegios o permisos de contenedor demasiado amplios?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si se cumplen los dos primeros puntos y todavía no se revisó la configuración rewrite, trátalo como alta prioridad. Los puntos de entrada públicos, entornos compartidos, Kubernetes Ingress, proxies de borde y Nginx que transportan tráfico de login o API deben actualizarse o sustituirse primero por paquetes con corrección confirmada.&lt;/p&gt;
&lt;h2 id=&#34;cómo-confirmar-la-corrección-en-debian--ubuntu--rhel--alpine&#34;&gt;Cómo confirmar la corrección en Debian / Ubuntu / RHEL / Alpine
&lt;/h2&gt;&lt;p&gt;Los usuarios de distribuciones no deben mirar solo &lt;code&gt;nginx -v&lt;/code&gt;. Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux y Alpine suelen aplicar backport de parches de seguridad a ramas estables, así que la versión visible puede seguir siendo inferior a &lt;code&gt;1.30.1&lt;/code&gt; o &lt;code&gt;1.31.0&lt;/code&gt; de nginx.org.&lt;/p&gt;
&lt;p&gt;En Debian / Ubuntu, revisa advisories de seguridad, changelog del paquete y candidatos de actualización:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -V
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt list --upgradable &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt changelog nginx &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i &lt;span class=&#34;s2&#34;&gt;&amp;#34;CVE-2026-42945&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En RHEL / AlmaLinux / Rocky Linux, revisa actualizaciones de seguridad y changelog del paquete:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yum updateinfo list security &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rpm -q --changelog nginx &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i &lt;span class=&#34;s2&#34;&gt;&amp;#34;CVE-2026-42945&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Alpine, revisa la versión instalada y las actualizaciones de la rama de seguridad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apk info -v nginx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apk version -v nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el gestor de paquetes, el advisory de la distribución o el advisory del proveedor dice explícitamente que &lt;code&gt;CVE-2026-42945&lt;/code&gt; está corregido, puedes tratarlo como backport aplicado aunque el número de versión upstream parezca antiguo. A la inversa, si la versión parece alta pero el origen no está claro, confirma igualmente la fecha de compilación y el origen del parche.&lt;/p&gt;
&lt;h2 id=&#34;cómo-comprobar-imágenes-de-contenedor-e-ingress-controller&#34;&gt;Cómo comprobar imágenes de contenedor e Ingress Controller
&lt;/h2&gt;&lt;p&gt;En entornos de contenedores, revisa el Nginx dentro de la imagen, no solo el host. Primero confirma la versión realmente incluida:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm your-nginx-image nginx -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run --rm your-nginx-image nginx -V
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También revisa si la imagen base fue actualizada. Si la imagen se construye sobre Debian, Ubuntu, Alpine o paquetes de distribución, el criterio vuelve a ser el advisory y el changelog de esa distribución. Reiniciar una imagen vieja no sirve; la imagen en sí debe reconstruirse o reemplazarse.&lt;/p&gt;
&lt;p&gt;En Kubernetes Ingress, confirma tres cosas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si el proyecto Ingress Controller publicó un advisory o una versión corregida para &lt;code&gt;CVE-2026-42945&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si el digest de la imagen del controller que corre en el clúster realmente cambió, no solo el tag.&lt;/li&gt;
&lt;li&gt;Si la versión de Nginx integrada, los parámetros de compilación y la configuración de plantillas del controller siguen conteniendo reglas rewrite de alto riesgo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Puedes empezar revisando la imagen en ejecución:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx get pods -o wide
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx describe pod &amp;lt;pod-name&amp;gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -i image
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si usas un Ingress o gateway administrado por un proveedor cloud, revisa también el advisory del servicio correspondiente. Los componentes administrados normalmente no se corrigen con un &lt;code&gt;apt upgrade&lt;/code&gt; ejecutado por el usuario; necesitas la corrección del proveedor o cambiar a una versión ya corregida.&lt;/p&gt;
&lt;h2 id=&#34;qué-patrones-rewrite-merecen-atención&#34;&gt;Qué patrones rewrite merecen atención
&lt;/h2&gt;&lt;p&gt;Esta vulnerabilidad está relacionada con la configuración &lt;code&gt;rewrite&lt;/code&gt;. Empieza buscando en la configuración de Nginx:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grep -R &lt;span class=&#34;s2&#34;&gt;&amp;#34;rewrite&amp;#34;&lt;/span&gt; /etc/nginx -n
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grep -R &lt;span class=&#34;s2&#34;&gt;&amp;#34;\\&lt;/span&gt;$&lt;span class=&#34;s2&#34;&gt;[0-9]&amp;#34;&lt;/span&gt; /etc/nginx -n
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Presta atención a patrones como este:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-nginx&#34; data-lang=&#34;nginx&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;rewrite&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;^/old/(.*)&lt;/span&gt;$ &lt;span class=&#34;s&#34;&gt;/new/&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$1?&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;permanent&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Las capturas sin nombre como &lt;code&gt;$1&lt;/code&gt; y &lt;code&gt;$2&lt;/code&gt;, junto con el &lt;code&gt;?&lt;/code&gt; en el destino de reemplazo, forman parte de las condiciones clave descritas por las fuentes oficiales. Durante la revisión, presta especial atención a:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un &lt;code&gt;rewrite&lt;/code&gt; seguido de otro &lt;code&gt;rewrite&lt;/code&gt;, &lt;code&gt;if&lt;/code&gt; o &lt;code&gt;set&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Capturas amplias como &lt;code&gt;(.*)&lt;/code&gt; o &lt;code&gt;(.+)&lt;/code&gt; reutilizadas como &lt;code&gt;$1&lt;/code&gt; o &lt;code&gt;$2&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Destinos rewrite que contienen &lt;code&gt;?&lt;/code&gt; para añadir o descartar parámetros de consulta.&lt;/li&gt;
&lt;li&gt;Entradas rewrite que provienen de rutas públicas, Host, URI, parámetros o valores controlados por upstream.&lt;/li&gt;
&lt;li&gt;Reglas rewrite generadas por paneles, gateways, anotaciones de Ingress o plantillas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si no puedes actualizar de inmediato, aplica mitigaciones temporales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reducir reglas rewrite complejas.&lt;/li&gt;
&lt;li&gt;Sustituir capturas sin nombre por capturas con nombre más claras.&lt;/li&gt;
&lt;li&gt;Evitar concatenar &lt;code&gt;?&lt;/code&gt; innecesarios en cadenas de reemplazo.&lt;/li&gt;
&lt;li&gt;Añadir reglas WAF o de proxy inverso para entradas de alto riesgo.&lt;/li&gt;
&lt;li&gt;Confirmar que ASLR está activado.&lt;/li&gt;
&lt;li&gt;Reducir privilegios de los workers de Nginx y verificar systemd sandbox, SELinux/AppArmor y otros endurecimientos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas medidas son mitigaciones, no sustituyen al parche.&lt;/p&gt;
&lt;h2 id=&#34;prioridad-de-remediación&#34;&gt;Prioridad de remediación
&lt;/h2&gt;&lt;p&gt;Prioriza por superficie expuesta:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Puntos de entrada Nginx expuestos a internet.&lt;/li&gt;
&lt;li&gt;Proxies inversos, API Gateway y gateways de borde.&lt;/li&gt;
&lt;li&gt;Nginx en entornos multiinquilino.&lt;/li&gt;
&lt;li&gt;Kubernetes Ingress Controller.&lt;/li&gt;
&lt;li&gt;Plesk, paneles de control, imágenes de marketplace cloud y otros componentes que incluyen Nginx.&lt;/li&gt;
&lt;li&gt;Nginx internos que transportan tráfico crítico de negocio.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cómo-verificar-después-de-actualizar-nginx--t-reload-y-estado-de-workers&#34;&gt;Cómo verificar después de actualizar: nginx -t, reload y estado de workers
&lt;/h2&gt;&lt;p&gt;Después de actualizar, no te quedes solo con el mensaje de éxito del gestor de paquetes. Confirma que la configuración, los procesos y el binario real ya cambiaron. Primero valida la configuración:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nginx -t
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si no hay errores, recarga de forma suave:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl reload nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la actualización del paquete sustituyó el binario, confirma que los workers antiguos salieron:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ps aux &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También puedes revisar la hora de inicio del proceso master y la ruta del binario para asegurarte de que el servicio en ejecución no sea un proceso antiguo que sigue residente. Si hace falta, programa una ventana de mantenimiento y reinicia el servicio para evitar que workers o contenedores antiguos sigan procesando solicitudes.&lt;/p&gt;
&lt;p&gt;En contenedores e Ingress, confirma también que el rollout de la nueva imagen se completó de verdad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx rollout status deployment/&amp;lt;deployment-name&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;kubectl -n ingress-nginx get pods -o wide
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La verificación clave no es &amp;ldquo;el comando se ejecutó&amp;rdquo;, sino &amp;ldquo;el tráfico en producción ya lo atienden procesos Nginx que incluyen la corrección&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;no-ignores-el-mismo-lote-de-correcciones-de-nginx&#34;&gt;No ignores el mismo lote de correcciones de Nginx
&lt;/h2&gt;&lt;p&gt;Las versiones &lt;code&gt;1.30.1&lt;/code&gt; y &lt;code&gt;1.31.0&lt;/code&gt; publicadas por nginx.org el mismo día no solo corrigen &lt;code&gt;CVE-2026-42945&lt;/code&gt;. La información de publicación también menciona HTTP/2 request injection, SCGI/uWSGI buffer overread, charset module buffer overread, HTTP/3 address spoofing, OCSP resolver use-after-free y otros problemas.&lt;/p&gt;
&lt;p&gt;Eso significa que un entorno de producción no debería limitarse a una regla temporal para un solo CVE. Conviene tratar esta ronda de seguridad de Nginx como una actualización completa.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El punto clave de &lt;code&gt;CVE-2026-42945&lt;/code&gt; no es &amp;ldquo;todos los Nginx pueden tomarse al instante&amp;rdquo;. Es una vulnerabilidad de seguridad de memoria presente durante mucho tiempo en el módulo rewrite, que puede activarse mediante solicitudes no autenticadas bajo configuraciones concretas. El resultado directo más claro es el fallo y reinicio de workers; en entornos más débiles, como sistemas con ASLR desactivado, el riesgo de ejecución de código aumenta.&lt;/p&gt;
&lt;p&gt;Para equipos de operaciones, el orden de actuación es simple:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirmar el origen y la versión de Nginx.&lt;/li&gt;
&lt;li&gt;Revisar advisories de la distribución, F5, nginx.org o proveedor cloud.&lt;/li&gt;
&lt;li&gt;Actualizar cuanto antes a una versión corregida o a un paquete de seguridad de la distribución.&lt;/li&gt;
&lt;li&gt;Revisar configuraciones rewrite complejas, especialmente combinaciones de &lt;code&gt;$1&lt;/code&gt;, &lt;code&gt;$2&lt;/code&gt; y &lt;code&gt;?&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Confirmar ASLR, aislamiento de privilegios y estado de recarga del servicio.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El titular puede asustar. La corrección debe ser tranquila: confirmar exposición, actualizar y después limpiar reglas rewrite de alto riesgo.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-42945&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD: CVE-2026-42945&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nginx.org/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Información de publicación de nginx.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://my.f5.com/manage/s/article/K000161019&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;F5 Security Advisory K000161019&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://depthfirst.com/nginx-rift&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;DepthFirst: Nginx Rift&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Desinstalar Ollama por completo en Linux (incluida la limpieza de residuos)</title>
        <link>https://knightli.com/es/2026/04/06/uninstall-ollama-on-linux/</link>
        <pubDate>Mon, 06 Apr 2026 09:16:29 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/uninstall-ollama-on-linux/</guid>
        <description>&lt;p&gt;Si necesitas eliminar Ollama por completo en Linux, puedes seguir el orden siguiente. Este artículo limpia el servicio, el ejecutable, el directorio de modelos y también el usuario y grupo &lt;code&gt;ollama&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;avisos-antes-de-desinstalar&#34;&gt;Avisos antes de desinstalar
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Los comandos siguientes eliminarán los archivos de modelos locales de Ollama (normalmente en &lt;code&gt;/usr/share/ollama&lt;/code&gt;). Confirma antes si necesitas hacer una copia de seguridad.&lt;/li&gt;
&lt;li&gt;Los comandos usan &lt;code&gt;sudo&lt;/code&gt; por defecto. Asegúrate de que la cuenta actual tenga permisos de administrador.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-detener-y-eliminar-el-servicio-systemd&#34;&gt;1. Detener y eliminar el servicio systemd
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl stop ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl disable ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -f /etc/systemd/system/ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;2-eliminar-el-ejecutable-de-ollama&#34;&gt;2. Eliminar el ejecutable de Ollama
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sudo rm -f &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-eliminar-directorios-de-bibliotecas-relacionados-con-ollama-si-existen&#34;&gt;3. Eliminar directorios de bibliotecas relacionados con Ollama (si existen)
&lt;/h2&gt;&lt;p&gt;Si tu método de instalación escribió archivos de Ollama en directorios &lt;code&gt;lib&lt;/code&gt;, puedes limpiarlos así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; d in /usr/local/lib/ollama /usr/lib/ollama /lib/ollama&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo rm -rf &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;4-eliminar-el-directorio-de-modelos-y-datos&#34;&gt;4. Eliminar el directorio de modelos y datos
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -rf /usr/share/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;5-eliminar-el-usuario-y-grupo-del-sistema-si-existen&#34;&gt;5. Eliminar el usuario y grupo del sistema (si existen)
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;id -u ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo userdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;getent group ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo groupdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;6-verificar-si-la-desinstalación-terminó&#34;&gt;6. Verificar si la desinstalación terminó
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ollama binary not found&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl status ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si las comprobaciones anteriores ya no encuentran &lt;code&gt;ollama&lt;/code&gt;, la desinstalación se ha completado.&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        
    </channel>
</rss>
