WPVulnerability

Descripció

Aquesta extensió s’integra amb l’API de WPVulnerability per proporcionar avaluacions de vulnerabilitats en temps real per al nucli de WordPress, extensions, temes, versió de PHP, Apache HTTPD, nginx, MariaDB, MySQL, ImageMagick, curl, memcached, Redis i SQLite.

Entrega informes detallats directament al tauler de WordPress, ajudant-te a estar al corrent dels possibles riscos de seguretat. Configura l’extensió per enviar avisos periòdics sobre l’estat de seguretat del teu lloc, assegurant que et mantens informat sense sentir-te aclaparat. Dissenyada per ser fàcil d’utilitzar, admet mesures de seguretat proactives sense emmagatzemar ni recuperar cap dada personal del teu lloc.

Fiabilitat de les dades

La informació que proporciona la base de dades d’informació prové de diferents fonts que han estat revisades per tercers. No hi ha cap mena de responsabilitat per la informació. Actua sota el teu propi risc.

Utilitzant l’extensió

WP-CLI

Pots utilitzar les següents ordres de WP-CLI per gestionar i comprovar vulnerabilitats:

  • Nucli: wp wpvulnerability core
  • Extensions: wp wpvulnerability plugins
  • Temes: wp wpvulnerability themes
  • PHP: wp wpvulnerability php
  • Apache HTTPD: wp wpvulnerability apache
  • nginx: wp wpvulnerability nginx
  • MariaDB: wp wpvulnerability mariadb
  • MySQL: wp wpvulnerability mysql
  • ImageMagick: wp wpvulnerability imagemagick
  • curl: wp wpvulnerability curl
  • memcached: wp wpvulnerability memcached
  • Redis: wp wpvulnerability redis
  • SQLite: wp wpvulnerability sqlite

Per configurar l’extensió pots utilitzar:

  • Amaga component: wp wpvulnerability config hide <component> [on|off]
  • Correu electrònic d’avisos: wp wpvulnerability config email <emails> (separats per comes)
  • Període d’avisos: wp wpvulnerability config period <never|daily|weekly>
  • Retenció de registres: wp wpvulnerability config log-retention <0|1|7|14|28> (en dies)
  • Durada de la memòria cau: wp wpvulnerability config cache <1|6|12|24> (en hores)

Tots els comandaments admeten l’opció --format per especificar el format de sortida:

  • --format=table: Mostra els resultats en un format de taula (per defecte)
  • --format=json: Mostra els resultats en format JSON

Necessites ajuda?

  • wp wpvulnerability --help: Mostra informació d’ajuda per als comandos de WPVulnerability
  • wp wpvulnerability [command] --help: Mostra informació d’ajuda per a un comandament de WPVulnerability

REST API

L’extensió WPVulnerability proporciona diversos punts d’entrada REST API per recollir informació de vulnerabilitat per a diferents components del lloc WordPress.

  • Nucli: /wpvulnerability/v1/core
  • Extensions: /wpvulnerability/v1/plugins
  • Temes: /wpvulnerability/v1/themes
  • PHP: /wpvulnerability/v1/php
  • Apache HTTPD: /wpvulnerability/v1/apache
  • nginx: /wpvulnerability/v1/nginx
  • MariaDB: /wpvulnerability/v1/mariadb
  • MySQL: /wpvulnerability/v1/mysql
  • ImageMagick: /wpvulnerability/v1/imagemagick
  • curl: /wpvulnerability/v1/curl
  • memcached: /wpvulnerability/v1/memcached
  • Redis: /wpvulnerability/v1/redis
  • SQLite: /wpvulnerability/v1/sqlite

L’API REST de WPVulnerability utilitza Contrasenyes d’Aplicació per a l’autenticació. Necessites incloure una Contrasenya d’Aplicació vàlida a la capçalera d’autorització de les teves sol·licituds

Exemple de sol·licitud amb autenticació

curl -X GET https://example.com/wp-json/wpvulnerability/v1/plugins -u username:application_password

Substitueix nom d’usuari pel teu username de WordPress i application_password per la teva Contrasenya d’Aplicació.

Configuracions Extra

«From:» mail (des de: 3.2.2)

Si, per alguna raó, necessites que els correus electrònics enviats per l’extensió tinguin un remitent diferent de l’administrador del lloc, pots canviar-ho des del wp-config.php afegint una constant:

define( 'WPVULNERABILITY_MAIL', 'sender@example.com' );

Si la constant està activa, serà visible a la pantalla de configuració

Força l’ocultació de comprovacions (des de: 4.1.0)

Si vols amagar sempre un component concret, pots definir una constant a wp-config.php. Si s’estableix a true, l’opció es marcarà automàticament a la pantalla de configuració i s’ometrà l’anàlisi corresponent.

Exemple:

define( 'WPVULNERABILITY_HIDE_APACHE', true );

Constants disponibles: WPVULNERABILITY_HIDE_CORE, WPVULNERABILITY_HIDE_PLUGINS, WPVULNERABILITY_HIDE_THEMES, WPVULNERABILITY_HIDE_PHP, WPVULNERABILITY_HIDE_APACHE, WPVULNERABILITY_HIDE_NGINX, WPVULNERABILITY_HIDE_MARIADB, WPVULNERABILITY_HIDE_MYSQL, WPVULNERABILITY_HIDE_IMAGEMAGICK, WPVULNERABILITY_HIDE_CURL, WPVULNERABILITY_HIDE_MEMCACHED, WPVULNERABILITY_HIDE_REDIS, WPVULNERABILITY_HIDE_SQLITE.

Durada de la memòria cau (des de: 4.1.0)

Per defecte, les dades de l’API es guarden a la memòria cau durant 12 hores. Per canviar-ho, defineix WPVULNERABILITY_CACHE_HOURS a wp-config.php amb un d’aquests valors: 1, 6, 12 o 24. Aquest valor substitueix la pantalla de configuració i l’ordre de WP-CLI.

define( 'WPVULNERABILITY_CACHE_HOURS', 24 );

Rotació de registres (des de: 4.2.0)

WPVulnerability emmagatzema les respostes més recents de l’API perquè puguis revisar les trucades recents des de la nova pestanya de registres. Defineix WPVULNERABILITY_LOG_RETENTION_DAYS a wp-config.php per controlar quants dies d’entrades es conserven. Els valors admesos són 0, 1, 7, 14 o 28; utilitzar 0 desactiva el registre completament.

define( 'WPVULNERABILITY_LOG_RETENTION_DAYS', 14 );

Quan la constant hi és present, el seu valor s’aplica a la interfície de configuració i a través de WP-CLI, garantint una rotació de registres coherent a tots els entorns.

Configuració de seguretat (des de: 4.3.0)

WPVulnerability utilitza un enfocament de detecció híbrid per al programari del servidor (ImageMagick, Redis, Memcached, SQLite): extensions PHP primer (més segur), i ordres de shell com a alternativa (més precís). Pots controlar aquest comportament mitjançant constants de configuració de seguretat a wp-config.php.

Desactivació global d’ordres de shell:

define( 'WPVULNERABILITY_DISABLE_SHELL_EXEC', true );

Desactiva completament l’ús d’ordres de shell. Recorre únicament a extensions PHP. Utilitza-ho per obtenir la màxima seguretat quan la pèrdua de precisió sigui acceptable.

Mode de seguretat (standard/strict/disabled):

define( 'WPVULNERABILITY_SECURITY_MODE', 'strict' );
  • standard – Detecció híbrida: extensions PHP primer, ordres de shell com a alternativa (per defecte, millor precisió)
  • strict – Només extensions PHP, sense ordres de shell (alta seguretat, menor precisió)
  • disabled – Sense cap detecció de programari (màxima seguretat)

Llista blanca de components:

define( 'WPVULNERABILITY_SHELL_EXEC_WHITELIST', 'imagemagick,redis' );

Permet ordres de shell només per als components especificats. Components disponibles: imagemagick, redis, memcached, sqlite. Utilitza-ho per a un control granular.

Exemples:

Màxima seguretat (sense ordres de shell):

define( 'WPVULNERABILITY_SECURITY_MODE', 'strict' );

Permet només la detecció de shell d’ImageMagick:

define( 'WPVULNERABILITY_SHELL_EXEC_WHITELIST', 'imagemagick' );

Desactivació completa:

define( 'WPVULNERABILITY_DISABLE_SHELL_EXEC', true );

Totes les ordres de shell estan predefinides i validades; no hi intervé cap entrada de l’usuari. Les ordres es registren per a l’auditoria de seguretat.

Compatibilitat

  • WordPress: 5.6 – 7.1
  • PHP: 7.0 – 8.5
  • WP-CLI: 2.3.0 – 2.12.0

Seguretat

Aquesta extensió s’adhereix a les següents mesures de seguretat i protocols de revisió per a cada versió:

Privadesa

  • Aquesta extensió o la WordPress Vulnerability Database API no recopila cap informació sobre el lloc, la identitat, les extensions, temes o contingut que té el lloc.

Vulnerabilitats

  • Es va trobar i corregir una vulnerabilitat de seguretat a la versió 4.2.2.1. Totes les versions anteriors (3.3.0 – 4.2.1) estan afectades. Actualitza a la versió 4.2.2.1 o posterior.

Found a security vulnerability? Please report it to us privately at ROBOTSTXT.

Col·laboradors

You can contribute to this plugin at the WPVulnerability repository.

Captures

Instal·lació

Descàrrega automàtica

Visita la secció d’extensions del WordPress, cerca [wpvulnerability]; Baixa i instal·la l’extensió.

Descàrrega manual

Extraieu el contingut del ZIP i carregueu el contingut al directori /wp-content/plugins/wpvulnerability/. Un cop pujat, apareixerà a la llista de plugins.

PMF

D’on prové la informació sobre vulnerabilitats?

L’origen està en l’API WPVulnerability.com. Les vulnerabilitats que apareixen en aquesta API provenen de diferents fonts, com ara les CVE.

Les dades del meu lloc s’envien a algun lloc?

No. Mai. La teva privacitat és molt important per a nosaltres. No comercialitzem amb les teves dades.

Quines vulnerabilitats em trobaré?

Es documenten vulnerabilitats al nucli de WordPress, extensions, temes, PHP, Apache HTTPD, nginx, MariaDB, MySQL, ImageMagick, curl, memcached, Redis i SQLite.

Què faig si el meu lloc web té una vulnerabilitat?

Primer de tot, tranquil·litat. Investiga quina és la vulnerabilitat i, sobretot, comprova que tens l’última versió de l’element compromès. Et recomanem activament que mantinguis tot el teu WordPress i les seves extensions actualitzats. Contacta amb el teu proveïdor d’allotjament per corregir vulnerabilitats que no són de WordPress (com el servidor web, bases de dades i altre programari).

Ressenyes

28 de gener de 2025 1 resposta
Without a doubt, the most important plugin to install on your WordPress instance.
17 de abril de 2024
Vulnerabilities are listed into your plugins list.You should also being able to receive an automatic email too. It doesn’t work on my system, but email test yes.So awesome plugin anyway!
8 de abril de 2024 1 resposta
Exactly what I was looking for ! On the roadmap, it would be nice if : we can chose if we want to receive an email OR not (I may use it as a vuln reminder on the dashboard, as I have other plugins already keeping me informed) we can chose what will be in the email – php or not for exemple (it seems that it is planned, thanks) only receive an email if one the vuln is considered high risk etc.
21 de febrer de 2024
This plugin alerts you about known vulnerabilities in your WordPress core, plugins, themes, and even PHP, so you can take action in a timely manner. If you don’t have this plugin on your site already, you absolutely need it!
Llegiu totes les 19 ressenyes

Col·laboradors i desenvolupadors

«WPVulnerability» és programari de codi obert. La següent gent ha col·laborat en aquesta extensió.

Col·laboradors

“WPVulnerability” s’ha traduït a 14 configuracions regionals. Gràcies als traductors per les seves aportacions.

Traduïu «WPVulnerability» a la vostra llengua.

Interessats en el desenvolupament?

Navegueu pel codi, baixeu-vos el repositori SVN, o subscriviu-vos al registre de desenvolupament per fisl de subscripció RSS.

Registre de canvis

[5.1.2] – 2026-08-07

Corregit

  • Missing load_plugin_textdomain() call caused a «Translation loading for the wpvulnerability domain was triggered too early» _doing_it_wrong() notice on WordPress 6.7+. The textdomain is now explicitly loaded on the init hook.

Afegit

  • WordPress Playground blueprint (blueprint.json) with pre-installed vulnerable plugins and a theme for quick testing.

Modificat

  • Security vulnerability reporting link updated to ROBOTSTXT.
  • Contributor repository link updated to git.robotstxt.es/ROBOTSTXT/wpvulnerability.
  • The readme.txt Changelog section now shows only the latest 3 versions; the full history remains in changelog.txt.

Compatibilitat

  • WordPress: 5.6 – 7.1
  • PHP: 7.0 – 8.5
  • WP-CLI: 2.3.0 – 2.12.0

Proves

  • PHP Coding Standards: 3.13.5
  • WordPress Coding Standards: 3.3.0
  • PHPStan: 2.1.55 (nivell 9, 0 errors)
  • PHPUnit: 9.6.34 (25 tests)

[5.1.1] – 2026-07-09

Corregit

  • Salut del lloc: les proves de vulnerabilitat de memcached, Redis i SQLite sempre retornaven «Tipus de programari no vàlid» perquè aquests components faltaven a la llista de programari. Ara s’executen correctament.
  • «Envia correu de prova» fallava quan no hi havia destinataris de correu configurats: la ruta de prova forçada afegia el correu de l’administrador, però la comprovació d’enviament utilitzava un indicador calculat abans d’aquesta substitució. El correu de prova ara s’envia correctament.
  • «Executa la notificació ara» informava d’un error quan només estaven activats els canals de webhook (Slack/Teams/Discord/Telegram) i el correu estava desactivat. El resultat de la notificació ara reflecteix si algun canal es va lliurar correctament.
  • Els esdeveniments cron de notificació setmanal mai es programaven automàticament, perquè la programació cron weekly només es registrava a init, mentre que la programació en la càrrega s’executa abans. El registre de la programació setmanal/diària es va traslladar al planificador que es carrega sempre, perquè les notificacions setmanals es programin correctament.
  • La desactivació eliminava la configuració d’anàlisi per component (wpvulnerability-analyze), de manera que desactivar i reactivar restablia quins components estaven ocults. Ara la configuració d’anàlisi es conserva en desactivar (només la desinstal·lació l’elimina).
  • El panell de depuració «Estat de cron» sempre mostrava l’esdeveniment de notificació com a «no programat» perquè comprovava un nom de hook incorrecte (wpvulnerability_send_notification en lloc de wpvulnerability_notification).
  • La marca de temps «última execució» de depuració sempre estava buida perquè llegia una opció wpvulnerability-logs que mai s’escriu; ara llegeix l’entrada de registre de l’API més recent.
  • La detecció de Redis cridava a close() dues vegades a la ruta d’èxit (una vegada al bloc try i una altra a finally); es va eliminar el tancament redundant.
  • El recompte de temes vulnerables en lloc individual estava fixat a 0 en lloc de llegir l’opció emmagatzemada.

Modificat

  • El sanejament de destinataris de correu en lloc individual ara utilitza is_email() per a una validació estricta, igualant el comportament de multilloc.
  • S’ha eliminat un camp de nonce redundant del formulari «Restableix l’extensió» de lloc individual (el formulari només envia l’acció de restabliment complet).
  • S’ha eliminat codi mort: la funció de retorn wpvulnerability_sanitize_messages sense ús i el seu registre d’ajust, i una variable $tools_action sense ús a l’administració de multilloc.

Compatibilitat

  • WordPress: 5.6 – 7.1
  • PHP: 7.0 – 8.5
  • WP-CLI: 2.3.0 – 2.12.0

Proves

  • PHP Coding Standards: 3.13.5
  • WordPress Coding Standards: 3.3.0
  • PHPStan: 2.1.55 (nivell 9, 0 errors)
  • PHPUnit: 9.6.34 (25 tests)

[5.1.0] – 2026-07-08

Seguretat

  • wpvulnerability_validate_shell_command() ara utilitza una coincidència exacta amb in_array() en lloc d’una coincidència de subcadena amb stripos() per a la llista blanca d’ordres de shell (defensa en profunditat).
  • wpvulnerability_detect_php(), wpvulnerability_detect_curl() i wpvulnerability_detect_webserver() ara passen per wpvulnerability_safe_shell_exec(), de manera que cada crida de shell de detecció de programari es valida i es registra al registre d’auditoria d’execució de shell. Abans cridaven directament a shell_exec(), saltant-se l’embolcall i el registre d’auditoria. Com a efecte secundari, això també corregeix la detecció de la versió de nginx/angie: escapeshellcmd() escapava la redirecció 2>&1, de manera que stderr (on nginx imprimeix la seva versió) mai es capturava.

Corregit

  • Error fatal en la desinstal·lació de multilloc: Uncaught Error: Undefined constant "WPVULNERABILITY_PLUGIN_BASE" quan estava activada l’opció «Elimina totes les dades de l’extensió en desinstal·lar». uninstall.php ara defineix la constant abans de carregar wpvulnerability-run.php.
  • Les constants WPVULNERABILITY_HIDE_* ara aturen la detecció amb shell_exec per als components ocults durant les anàlisis programades i al panell d’administració «Mètodes de detecció de programari». Abans només amagaven els resultats a la interfície, per la qual cosa el registre d’auditoria es continuava omplint d’entrades «ordre no trobada» per a components que l’administrador havia desactivat explícitament.
  • wpvulnerability_detect_webserver() ja no sondeja mitjançant shell un servidor web ocult a través del camí germà: WPVULNERABILITY_HIDE_NGINX i WPVULNERABILITY_HIDE_APACHE ara aïllen completament el servidor ocult.
  • Les peticions cron de multilloc en subllocs que no són el principal ja no carreguen tots els fitxers de mòduls de l’extensió. No es programa cap esdeveniment cron de WPVulnerability als subllocs, per la qual cosa aquesta càrrega addicional era treball innecessari.
  • La detecció per shell de LiteSpeed / OpenLiteSpeed / Caddy al panell de diagnòstic de WP_DEBUG ara funciona: les ordres ja no utilitzen 2>/dev/null (que el validador d’ordres de shell rebutjava), es va afegir caddy a la llista blanca, i la sortida de which es valida com un camí real perquè els missatges «ordre no trobada» no es confonguin amb una detecció.

Modificat

  • S’ha afegit Network: true a la capçalera de l’extensió per declarar un comportament compatible amb multilloc.
  • S’ha eliminat el paràmetre $plugin_status sense ús de wpvulnerability_plugin_info_after(); la suite de PHPCS ara passa sense cap avís.
  • Tauler de xarxa multilloc: l’enllaç del peu de pàgina «Salut del lloc» apuntava a wp-admin/network/site-health.php, que no existeix (Salut del lloc és una pantalla per lloc). Ara enllaça a wp-admin/site-health.php del lloc principal.

Compatibilitat

  • WordPress: 5.6 – 7.1
  • PHP: 7.0 – 8.5
  • WP-CLI: 2.3.0 – 2.12.0

Proves

  • PHP Coding Standards: 3.13.5
  • WordPress Coding Standards: 3.3.0
  • PHPStan: 2.1.55 (nivell 9, 0 errors)
  • PHPUnit: 9.6.34 (18 proves)

Versions anteriors

Si voleu veure el registre complet de canvis, visiteu el fitxer changelog.txt