Datos Transmitidos
Este documento detalla todos los datos que WordPress 6.9 envía a servicios externos en su configuración por defecto, con análisis de sensibilidad y implicaciones.
Información de Versiones de Software
Versión de WordPress
Valor: $wp_version (ej: '6.9')
Enviado a:
- ✓ Core Update API
- ✓ Plugin Update API
- ✓ Theme Update API
- ✓ Translations API
- ✓ Plugin Info API
- ✓ Theme Info API
- ✓ Browse Happy API
- ✓ Community Events API
- ✓ Pattern Directory API
Ubicación en código: wp-includes/version.php línea 19
Sensibilidad: MEDIA
- Revela vulnerabilidades conocidas de la versión específica
- Información públicamente accesible (visible en meta tags, RSS, etc.)
Formato de envío:
GET/POST parameter: version=6.9
User-Agent header: WordPress/6.9; https://example.com/
Versión de PHP
Valor: PHP_VERSION (ej: '8.3.0')
Enviado a:
- ✓ Core Update API
Código:
// wp-includes/update.php:38
$php_version = PHP_VERSION;
$query['php'] = $php_version;
Sensibilidad: ALTA
- Versiones antiguas de PHP tienen vulnerabilidades conocidas
- Puede facilitar exploits dirigidos
- Revela capacidades del servidor
Consideraciones:
- PHP 7.2.24 es el mínimo requerido por WP 6.9
- Versiones EOL (End of Life) son especialmente vulnerables
Versión de MySQL/MariaDB
Valor: Ejemplo '8.0.35' o '10.11.6-MariaDB'
Enviado a:
- ✓ Core Update API
Código:
// wp-includes/update.php:79-85
if ( method_exists( $wpdb, 'db_server_info' ) ) {
$mysql_version = $wpdb->db_server_info();
} elseif ( method_exists( $wpdb, 'db_version' ) ) {
$mysql_version = preg_replace( '/[^0-9.].*/', '', $wpdb->db_version() );
} else {
$mysql_version = 'N/A';
}
Sensibilidad: MEDIA-ALTA
- Identifica si es MySQL o MariaDB
- Versiones antiguas pueden tener vulnerabilidades
- Mínimo requerido: MySQL 5.5.5
Extensiones PHP Instaladas
Valor: Array completo de extensiones con sus versiones
Enviado a:
- ✓ Core Update API
Código:
// wp-includes/update.php:97-98
$extensions = get_loaded_extensions();
sort( $extensions, SORT_STRING | SORT_FLAG_CASE );
$query['extensions'] = array_combine( $extensions, array_map( 'phpversion', $extensions ) );
Ejemplo de datos:
array(
'Core' => false,
'date' => false,
'libxml' => '2.9.10',
'openssl' => '1.1.1k',
'pcre' => false,
'zlib' => '1.2.11',
'bcmath' => false,
'calendar' => false,
'ctype' => false,
'curl' => '7.68.0',
'dom' => '20031129',
'hash' => '1.0',
'fileinfo' => '1.0.5',
'filter' => '7.4.3',
'ftp' => false,
'gd' => false,
'gettext' => false,
'gmp' => false,
'iconv' => false,
'imagick' => '3.4.4',
'intl' => '1.1.0',
'json' => false,
'ldap' => false,
'mbstring' => false,
'mysqli' => false,
'mysqlnd' => 'mysqlnd 7.4.3',
'exif' => '7.4.3',
'pcntl' => false,
'pdo_mysql' => false,
'phar' => '7.4.3',
'posix' => false,
'redis' => '5.3.4',
'session' => false,
'soap' => false,
'sockets' => false,
'sodium' => false,
'spl' => '7.4.3',
'tokenizer' => '7.4.3',
'xml' => false,
'xmlreader' => '7.4.3',
'xmlwriter' => '7.4.3',
'zip' => '1.15.6',
// ... y más
)
Sensibilidad: MUY ALTA
- Revela configuración completa del servidor PHP
- Identifica presencia/ausencia de extensiones de seguridad (sodium, openssl)
- Puede revelar servicios adicionales (redis, memcached)
- Información valiosa para ingeniería social y exploits
Justificación de WordPress:
“WordPress necesita saber qué capacidades tiene el servidor para recomendar actualizaciones compatibles”
Extensiones requeridas: json, hash
Información de Sistema Operativo
Plataforma y Arquitectura
Enviado a:
- ✓ Core Update API
Código:
// wp-includes/update.php:111-114
'platform_flags' => array(
'os' => PHP_OS, // ej: 'Linux', 'Windows', 'Darwin'
'bits' => PHP_INT_SIZE === 4 ? 32 : 64,
),
Ejemplo:
array(
'os' => 'Linux',
'bits' => 64
)
Sensibilidad: BAJA-MEDIA
- Información técnica básica
- Útil para atacantes que buscan exploits específicos del OS
Soporte de Formatos de Imagen
Enviado a:
- ✓ Core Update API
Código:
// wp-includes/update.php:151-181
if ( function_exists( 'gd_info' ) ) {
$gd_info = gd_info();
$query['image_support']['gd'] = array_keys(
array_filter(
array(
'webp' => isset( $gd_info['WebP Support'] ),
'avif' => isset( $gd_info['AVIF Support'] ),
'heic' => isset( $gd_info['HEIC Support'] ),
'jxl' => isset( $gd_info['JXL Support'] ),
)
)
);
}
if ( class_exists( 'Imagick' ) ) {
$query['image_support']['imagick'] = array_keys(
array_filter(
array(
'webp' => ! empty( Imagick::queryFormats( 'WEBP' ) ),
'avif' => ! empty( Imagick::queryFormats( 'AVIF' ) ),
'heic' => ! empty( Imagick::queryFormats( 'HEIC' ) ),
'jxl' => ! empty( Imagick::queryFormats( 'JXL' ) ),
)
)
);
}
Ejemplo:
array(
'gd' => array('webp'),
'imagick' => array('webp', 'avif', 'heic')
)
Sensibilidad: BAJA
- Información técnica sobre capacidades de procesamiento de imágenes
- No expone datos personales ni críticos
Información de Base de Datos
Tablas MyISAM
Enviado a:
- ✓ Core Update API
Código:
// wp-includes/update.php:118-149
$table_names = implode( "','", $wpdb->tables() );
$myisam_tables = $wpdb->get_results(
$wpdb->prepare(
"SELECT TABLE_NAME FROM information_schema.TABLES
WHERE TABLE_SCHEMA = %s
AND TABLE_NAME IN ('$table_names')
AND ENGINE = %s;",
DB_NAME,
'MyISAM'
),
OBJECT_K
);
Enviado: Array de nombres de tabla (sin prefijo)
array('posts', 'comments', 'users', 'options')
Sensibilidad: MEDIA
- Revela nombres de tablas estándar de WordPress
- Indica uso de MyISAM (motor antiguo sin transacciones)
- No incluye nombres de tablas personalizadas de plugins
Contexto: MyISAM está obsoleto, WordPress recomienda InnoDB
Versión Inicial de Base de Datos
Enviado a:
- ✓ Core Update API
Valor: get_site_option( 'initial_db_version' )
Sensibilidad: BAJA
- Indica con qué versión de WordPress se creó el sitio
- Ejemplo:
57155(WordPress 6.4)
Información del Sitio WordPress
URL del Sitio
Enviado a: TODAS LAS APIs
Formatos:
- User-Agent header:
WordPress/6.9; https://example.com/ - Custom headers:
wp_install: URL de instalación (multisite: network URL)wp_blog: URL del blog actual
Código:
// wp-includes/update.php:238-242
'user-agent' => 'WordPress/' . wp_get_wp_version() . '; ' . home_url( '/' ),
'headers' => array(
'wp_install' => $wp_install,
'wp_blog' => home_url( '/' ),
),
Sensibilidad: MEDIA-ALTA
- Asocia todas las peticiones con un sitio específico
- Permite tracking a través de múltiples APIs
- WordPress.org podría construir perfiles de sitios
Justificación: WordPress necesita identificar el sitio para respuestas apropiadas
Número de Sitios y Usuarios (Multisite)
Enviado a:
- ✓ Core Update API
Código:
// wp-includes/update.php:87-95
if ( is_multisite() ) {
$num_blogs = get_blog_count();
$wp_install = network_site_url();
$multisite_enabled = 1;
} else {
$multisite_enabled = 0;
$num_blogs = 1;
$wp_install = home_url( '/' );
}
$query['blogs'] = $num_blogs;
$query['users'] = get_user_count();
$query['multisite_enabled'] = $multisite_enabled;
Sensibilidad: MEDIA
- Identifica instalaciones multisite
- Revela escala del sitio/red
- Número exacto de usuarios puede ser información estratégica
Locale (Idioma)
Enviado a: TODAS LAS APIs
Valores: es_ES, en_US, fr_FR, etc.
Código:
// wp-includes/update.php:73
$locale = apply_filters( 'core_version_check_locale', get_locale() );
Sensibilidad: BAJA
- Información necesaria para traducciones
- Puede indicar ubicación geográfica aproximada
Inventarios de Software
Lista Completa de Plugins
Enviado a:
- ✓ Plugin Update Check API
Datos por plugin:
array(
'Name' => 'Plugin Name',
'PluginURI' => 'https://example.com/plugin',
'Version' => '2.1.0',
'Description' => 'Plugin description...',
'Author' => 'Author Name',
'AuthorURI' => 'https://author.com',
'TextDomain' => 'plugin-slug',
'DomainPath' => '/languages',
'Network' => false,
'RequiresWP' => '5.9',
'RequiresPHP' => '7.4',
'UpdateURI' => '', // Si usa repositorio custom
'Title' => 'Plugin Name',
'AuthorName' => 'Author Name'
)
Sensibilidad: MUY ALTA
Riesgos:
- Identificación de vulnerabilidades conocidas: Plugins desactualizados son objetivos primarios
- Huella digital única: La combinación específica de plugins puede identificar el sitio de forma única
- Información estratégica: Revela funcionalidad del sitio (e-commerce, membresías, etc.)
- Metadata sensible: Versiones exactas facilitan exploits específicos
- Reconocimiento: Atacantes pueden identificar la pila completa de software
Ejemplo de datos enviados:
{
"akismet/akismet.php": {
"Name": "Akismet Anti-spam",
"Version": "5.3"
},
"woocommerce/woocommerce.php": {
"Name": "WooCommerce",
"Version": "8.5.1"
},
"wordfence/wordfence.php": {
"Name": "Wordfence Security",
"Version": "7.11.3"
}
}
Plugins inactivos: También se envían, revelando plugins instalados pero no utilizados
Lista Completa de Temas
Enviado a:
- ✓ Theme Update Check API
Datos por tema:
array(
'Name' => 'Twenty Twenty-Five',
'ThemeURI' => 'https://wordpress.org/themes/twentytwentyfive/',
'Description' => 'Theme description...',
'Author' => 'the WordPress team',
'AuthorURI' => 'https://wordpress.org/',
'Version' => '1.0',
'Template' => '', // Tema padre (si es tema hijo)
'Status' => 'publish',
'Tags' => 'blog, one-column...',
'TextDomain' => 'twentytwentyfive',
'DomainPath' => '',
'RequiresWP' => '6.7',
'RequiresPHP' => '7.2.24',
'UpdateURI' => '',
'Title' => 'Twenty Twenty-Five',
'AuthorName' => 'the WordPress team'
)
Sensibilidad: MEDIA-ALTA
- Revela tema activo y temas inactivos
- Temas desactualizados pueden tener vulnerabilidades
- Tema hijo (
Template) revela personalización
Traducciones Instaladas
Enviado a:
- ✓ Core Update API
- ✓ Plugin Update API
- ✓ Theme Update API
Código:
$translations = wp_get_installed_translations( 'core' ); // o 'plugins', 'themes'
Formato:
array(
'es_ES' => array(
'PO-Revision-Date' => '2026-01-15 10:30:00+0000',
'MIME-Version' => '1.0',
'Content-Type' => 'text/plain; charset=UTF-8',
'Content-Transfer-Encoding' => '8bit',
'Plural-Forms' => 'nplurals=2; plural=n != 1;',
'X-Generator' => 'GlotPress/...',
'Language' => 'es',
'Project-Id-Version' => 'WordPress 6.9'
)
)
Sensibilidad: BAJA
- Confirma idiomas del sitio
- No expone información crítica
Datos del Usuario/Navegador
User-Agent del Navegador
Enviado a:
- ✓ Browse Happy API
Valor completo: Ejemplo
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Código:
// wp-admin/includes/dashboard.php:1820
array( 'useragent' => $_SERVER['HTTP_USER_AGENT'] )
Sensibilidad: ALTA
Riesgos de privacidad:
- Browser fingerprinting: Identificación única del navegador
- Información del sistema: OS, arquitectura, motor de renderizado
- Versiones específicas: Identifica vulnerabilidades del navegador
- Datos del administrador: Revela información sobre el usuario admin, no el servidor
GDPR: User-Agent puede considerarse dato personal en contexto de identificación única
IP del Usuario (Anonimizada)
Enviado a:
- ✓ Community Events API (anonimizada)
Código de anonimización:
// wp-admin/includes/class-wp-community-events.php:178-199
protected function get_unsafe_client_ip() {
$client_ip = false;
// In order of preference...
if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
$client_ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$client_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif ( ! empty( $_SERVER['REMOTE_ADDR'] ) ) {
$client_ip = $_SERVER['REMOTE_ADDR'];
}
return $client_ip;
}
// Anonimización: wp_privacy_anonymize_ip()
// IPv4: 192.168.1.100 -> 192.168.1.0
// IPv6: 2001:db8::1 -> 2001:db8::
Sensibilidad: MEDIA (por anonimización)
- IP anonimizada no permite identificación precisa
- Permite geolocalización aproximada (ciudad/región)
Diseño de privacidad: WordPress implementa medidas de protección
Geolocalización (Opcional)
Enviado a:
- ✓ Community Events API
Datos:
array(
'location_search' => 'Madrid', // Opcional: búsqueda manual
'lat' => '40.4168', // Opcional: coordenadas
'lon' => '-3.7038', // Opcional: coordenadas
'timezone' => 'Europe/Madrid' // Zona horaria del usuario
)
Sensibilidad: MEDIA-ALTA (si se proporciona)
- El usuario debe proporcionar ubicación manualmente
- No se envía automáticamente sin consentimiento
Búsquedas y Consultas del Usuario
Búsquedas de Plugins
Enviado a:
- ✓ Plugin Info API
Datos:
array(
'search' => 'contact form',
'tag' => 'forms',
'author' => '',
'browse' => 'popular',
'page' => 1,
'per_page' => 24
)
Sensibilidad: MEDIA
- Revela intenciones y necesidades del administrador
- Puede indicar funcionalidad planificada del sitio
- WordPress.org puede construir perfiles de comportamiento
Búsquedas de Patrones de Bloques
Enviado a:
- ✓ Pattern Directory API
Datos:
array(
'search' => 'hero section',
'pattern-categories' => 'header',
'pattern-keywords' => 'CTA'
)
Sensibilidad: BAJA-MEDIA
- Revela diseño e intenciones de diseño
- Proxied por el servidor (no expone IP del usuario final)
Configuración y Estado del Sistema
WP-Cron Status
Enviado indirectamente: Afecta timeout de peticiones
Código:
// wp-includes/update.php:234
$doing_cron = wp_doing_cron();
$options = array(
'timeout' => $doing_cron ? 30 : 3,
...
);
No se envía explícitamente, pero el timing puede inferirlo.
Canales de Actualización
Enviado a:
- ✓ Core Update API
Valor: beta, rc, development, branch-development
Código:
// wp-includes/update.php:220-224
if ( defined( 'WP_AUTO_UPDATE_CORE' )
&& in_array( WP_AUTO_UPDATE_CORE, array( 'beta', 'rc', 'development', 'branch-development' ), true )
) {
$query['channel'] = WP_AUTO_UPDATE_CORE;
}
Sensibilidad: BAJA
- Indica sitios de prueba/desarrollo
- No expone datos sensibles
Datos NO Enviados (Confirmado)
✗ Contenido de posts/páginas ✗ Usuarios y sus datos personales ✗ Datos de clientes/pedidos ✗ Passwords o salts ✗ Rutas absolutas del servidor ✗ Nombre de base de datos ✗ Credenciales FTP/SSH ✗ Claves API de terceros ✗ Contenido de formularios ✗ Emails de usuarios ✗ Información de pago
Resumen de Sensibilidad
| Categoría | Sensibilidad | Justificación |
|---|---|---|
| Versión de WordPress | Media | Expone vulnerabilidades conocidas |
| Versión de PHP | Alta | Facilita exploits dirigidos |
| Versión de MySQL | Media-Alta | Identifica vulnerabilidades |
| Extensiones PHP | Muy Alta | Configuración completa del servidor |
| OS y arquitectura | Baja-Media | Info técnica básica |
| Soporte de imágenes | Baja | Capacidades técnicas |
| Tablas MyISAM | Media | Estructura de BD |
| URL del sitio | Media-Alta | Tracking y asociación |
| Número de sitios/usuarios | Media | Escala del sitio |
| Locale | Baja | Necesario para traducciones |
| Lista de plugins | Muy Alta | Huella digital única, vulnerabilidades |
| Lista de temas | Media-Alta | Identifica personalización |
| Traducciones | Baja | Info de idiomas |
| User-Agent navegador | Alta | Fingerprinting, dato personal |
| IP (anonimizada) | Media | Geolocalización aproximada |
| Geolocalización | Media-Alta | Si se proporciona voluntariamente |
| Búsquedas | Media | Revela intenciones |
Conclusiones
Datos Más Sensibles
- Lista completa de plugins y versiones – Vulnerabilidades y huella digital
- Extensiones PHP completas – Configuración del servidor
- User-Agent del navegador – Fingerprinting y dato personal
- Versión de PHP – Facilita exploits
- URL del sitio en todas las peticiones – Tracking
Justificación de WordPress.org
WordPress argumenta que estos datos son necesarios para:
- Proporcionar actualizaciones compatibles
- Mejorar la experiencia del usuario
- Ofrecer recomendaciones relevantes
- Estadísticas del ecosistema
Recomendaciones
- Revisar necesidad: ¿Necesita el sitio todas estas comunicaciones?
- Implementar filtros: WordPress permite filtrar datos enviados
- Usar plugins de privacidad: Herramientas para gestionar llamadas externas
- Considerar proxy: Centralizar peticiones a través de proxy propio
- Documentar: Incluir en política de privacidad del sitio

Deja una respuesta