HexBrain

Browse / CVEs / CVE-2025-46818

CVE-2025-46818

Redis Lua Sandbox < 8.2.2 - Cross-User Escape

highseverity
0.7%likelihood of exploitation, next 30 days
55%of all CVEs are less likely
Readycheck to confirm it

Redis is an open source, in-memory database that persists on disk. Versions 8.2.1 and below allow an authenticated user to use a specially crafted Lua script to manipulate different LUA objects and potentially run their own code in the context of another user. The problem exists in all versions of Redis with LUA scripting. This issue is fixed in version 8.2.2. A workaround to mitigate the problem without patching the redis-server executable is to prevent users from executing LUA scripts. This can be done using ACL to block a script by restricting both the EVAL and FUNCTION command families.

Impact

Authenticated users can execute arbitrary code in the context of other users, potentially leading to full system compromise.

Fix

Upgrade to version 8.2.2 or later.

How to confirm it

Positive when: success == true and compare_versions(version, ' < 8.2.2')
Positive when: success == true and contains(response, 'lua enabled')

Run it with nuclei: nuclei -id CVE-2025-46818 -u <target>

The full check
id: CVE-2025-46818

info:
  name: Redis Lua Sandbox < 8.2.2 - Cross-User Escape
  author: pussycat0x
  severity: high
  description: |
    Redis is an open source, in-memory database that persists on disk. Versions 8.2.1 and below allow an authenticated user to use a specially crafted Lua script to manipulate different LUA objects and potentially run their own code in the context of another user. The problem exists in all versions of Redis with LUA scripting. This issue is fixed in version 8.2.2. A workaround to mitigate the problem without patching the redis-server executable is to prevent users from executing LUA scripts. This can be done using ACL to block a script by restricting both the EVAL and FUNCTION command families.
  impact: |
    Authenticated users can execute arbitrary code in the context of other users, potentially leading to full system compromise.
  remediation: |
    Upgrade to version 8.2.2 or later.
  reference:
    - https://github.com/dwisiswant0/CVE-2025-46818
  metadata:
    verified: true
    max-request: 1
    shodan-query: product:"redis"
  tags: cve,cve2025,js,redis,network,passive,authenticated,vuln

flow: javascript(1) && javascript(2)

javascript:
  - pre-condition: |
      isPortOpen(Host,Port);

    code: |
      const redis = require('nuclei/redis');
      const info = redis.GetServerInfo(Host,Port);
      Export(info);

    args:
      Host: "{{Host}}"
      Port: "6379"

    matchers:
      - type: dsl
        dsl:
          - success == true
          - compare_versions(version, ' < 8.2.2')
        condition: and

    extractors:
      - type: regex
        name: version
        part: response
        group: 1
        regex:
          - redis_version:(\d+\.\d+\.\d+)

  - code: |
      const redis = require('nuclei/redis');
      const info = redis.RunLuaScript(Host,Port,Password,Payload);
      Export(info);

    args:
      Host: "{{Host}}"
      Port: "6379"
      Password: "{{passwords}}"
      Payload: 'return "lua enabled"'

    payloads:
      passwords:
        - ""

    matchers:
      - type: dsl
        dsl:
          - success == true
          - contains(response, 'lua enabled')
        condition: and
        internal: true

References

Use this check only on systems you are authorised to test. Where the data comes from