Detection rules › Splunk

F5 BIG-IP iControl REST Vulnerability CVE-2022-1388

Status
production
Severity
medium
Group by
Web.src, Web.url_length, c-uri, c-useragent, cs-host, cs-method
Author
Michael Haag, Splunk
Source
github.com/splunk/security_content

The following analytic detects attempts to exploit the F5 BIG-IP iControl REST API vulnerability (CVE-2022-1388) for unauthenticated remote code execution. It identifies suspicious URI paths and POST HTTP methods, along with specific request headers containing potential commands in the utilcmdargs field and a random base64 encoded value in the X-F5-Auth-Token field. This activity is significant as it targets a critical vulnerability that can allow attackers to execute arbitrary commands on the affected system. If confirmed malicious, this could lead to full system compromise and unauthorized access to sensitive data.

Known false positives

  • False positives may be present if the activity is blocked or was not successful. Filter known vulnerability scanners. Filter as needed.

MITRE ATT&CK coverage

Rule body

name: F5 BIG-IP iControl REST Vulnerability CVE-2022-1388
id: bb1c2c30-107a-4e56-a4b9-1f7022867bfe
version: 10
creation_date: '2022-05-10'
modification_date: '2026-05-13'
author: Michael Haag, Splunk
status: production
type: TTP
description: |
    The following analytic detects attempts to exploit the F5 BIG-IP iControl REST API vulnerability (CVE-2022-1388) for unauthenticated remote code execution.
    It identifies suspicious URI paths and POST HTTP methods, along with specific request headers containing potential commands in the `utilcmdargs` field and a random base64 encoded value in the `X-F5-Auth-Token` field.
    This activity is significant as it targets a critical vulnerability that can allow attackers to execute arbitrary commands on the affected system.
    If confirmed malicious, this could lead to full system compromise and unauthorized access to sensitive data.
data_source:
    - Palo Alto Network Threat
search: |-
    | tstats `security_content_summariesonly`
             count min(_time) as firstTime
                   max(_time) as lastTime
    FROM datamodel=Web WHERE
    Web.url="*/mgmt/tm/util/bash*"
    Web.http_method="POST"
    BY Web.http_user_agent Web.http_method
       Web.url Web.url_length
       Web.src Web.dest
    | `drop_dm_object_name("Web")`
    | `security_content_ctime(firstTime)`
    | `security_content_ctime(lastTime)`
    | `f5_big_ip_icontrol_rest_vulnerability_cve_2022_1388_filter`
how_to_implement: |
    To successfully implement this search, you need to be ingesting web or proxy logs, or ensure it is being filled by a proxy like device, into the Web Datamodel. For additional filtering, allow list private IP space or restrict by known good.
known_false_positives: |
    False positives may be present if the activity is blocked or was not successful. Filter known vulnerability scanners. Filter as needed.
references:
    - https://github.com/dk4trin/templates-nuclei/blob/main/CVE-2022-1388.yaml
    - https://www.randori.com/blog/vulnerability-analysis-cve-2022-1388/
    - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-1388
    - https://twitter.com/da_667/status/1523770267327250438?s=20&t=-JnB_aNWuJFsmcOmxGUWLQ
    - https://github.com/horizon3ai/CVE-2022-1388/blob/main/CVE-2022-1388.py
finding:
    title: An attempt to exploit CVE-2022-1388 against an F5 appliance $dest$ has occurred.
    entity:
        field: dest
        type: system
        score: 50
analytic_story:
    - F5 BIG-IP Vulnerability CVE-2022-1388
    - CISA AA24-241A
asset_type: Web Server
cve:
    - CVE-2022-1388
mitre_attack_id:
    - T1190
    - T1133
product:
    - Splunk Enterprise
    - Splunk Enterprise Security
    - Splunk Cloud
category: network
security_domain: network

Stages and Predicates

Stage 1: tstats

| tstats `security_content_summariesonly`
         count min(_time) as firstTime
               max(_time) as lastTime
FROM datamodel=Web WHERE
Web.url="*/mgmt/tm/util/bash*"
Web.http_method="POST"
BY Web.http_user_agent Web.http_method
   Web.url Web.url_length
   Web.src Web.dest

Stage 2: search

| `drop_dm_object_name("Web")`

Stage 3: search

| `security_content_ctime(firstTime)`

Stage 4: search

| `security_content_ctime(lastTime)`

Stage 5: search

| `f5_big_ip_icontrol_rest_vulnerability_cve_2022_1388_filter`

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Web.http_methodeq
  • "POST"
field:"cs-method" kind:eq
Web.urleq
  • "*/mgmt/tm/util/bash*"
field:"c-uri" kind:eq