CVE-2026-29093
WWBN AVideo: Unauthenticated PHP session store exposed to host network via published memcached port
WWBN AVideo is an open source video platform. Prior to version 24.0, the official docker-compose.yml publishes the memcached service on host port 11211 (0.0.0.0:11211) with no authentication, while the Dockerfile configures PHP to store all user sessions in that memcached instance. An attacker who can reach port 11211 can read, modify, or flush session data — enabling session hijacking, admin impersonation, and mass session destruction without any application-level authentication. This issue has been patched in version 24.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.1
WWBN AVideo: Unauthenticated PHP session store exposed to host network via published memcached port
WWBN AVideo is an open source video platform. Prior to version 24.0, the official docker-compose.yml publishes the memcached service on host port 11211 (0.0.0.0:11211) with no authentication, while the Dockerfile configures PHP to store all user sessions in that memcached instance. An attacker who can reach port 11211 can read, modify, or flush session data — enabling session hijacking, admin impersonation, and mass session destruction without any application-level authentication. This issue has been patched in version 24.0.
- Record
CVE-2026-29093- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287, CWE-668
- Updated
- 2026-11-02
EUVDEUVD-2026-9973
8.1
WWBN AVideo is an open source video platform. Prior to version 24.0, the official docker-compose.yml publishes the memcached service on host port 11211 (0.0.0.0:11211) with no authentication, while the Dockerfile configures PHP to store all user sessions in that memcached instance. An attacker who can reach port 11211 can read, modify, or flush session data — enabling session hijacking, admin impersonation, and mass session destruction without any application-level authentication. This issue has been patched in version 24.0.
- Record
EUVD-2026-9973- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-xxpw-32hf-q8v9
8.1
AVideo: Unauthenticated PHP session store exposed to host network via published memcached port
Summary
The official docker-compose.yml publishes the memcached service on host port 11211 (0.0.0.0:11211) with no authentication, while the Dockerfile configures PHP to store all user sessions in that memcached instance. An attacker who can reach port 11211 can read, modify, or flush session data — enabling session hijacking, admin impersonation, and mass session destruction without any application-level authentication.
Severity
High (CVSS 3.1: 8.1)
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network —
docker-compose.ymlbinds memcached to0.0.0.0:11211on the host - Attack Complexity: High — exploitation requires port 11211 to be network-reachable, which depends on external firewall/security group configuration beyond the attacker's control
- Privileges Required: None — memcached has no authentication mechanism enabled
- User Interaction: None
- Scope: Unchanged — impact is to the AVideo application's session management
- Confidentiality Impact: High — session data includes user IDs, admin flags, email addresses, and password hashes
- Integrity Impact: High — an attacker can modify session data to inject admin privileges or impersonate any user
- Availability Impact: High —
flush_alldestroys all active sessions, forcing mass logout
Affected Component
docker-compose.yml— memcached serviceportsdirective (line 203)Dockerfile— PHP session configuration (lines 150-151)
CWE
- CWE-668: Exposure of Resource to Wrong Sphere
- CWE-287: Improper Authentication (memcached has no authentication)
Description
Memcached port unnecessarily published to host network
The docker-compose.yml publishes the memcached port to the Docker host's network interface:
# docker-compose.yml — lines 192-213
memcached:
image: memcached:alpine
restart: unless-stopped
command: >
memcached -m 512 -c 2048 -t ${NPROC:-4} -R 200
ports:
- "${MEMCACHE_PORT:-11211}:11211" # <-- Exposes to 0.0.0.0:11211
networks:
- app_net
The memcached command has no authentication flags:
- No
-Sflag (SASL authentication) - No
-l 127.0.0.1flag (interface binding restriction)
The default env.example reinforces this port:
MEMCACHE_PORT=11211
PHP sessions stored entirely in memcached
The Dockerfile configures PHP to use memcached as the session store:
; Dockerfile — lines 150-151
session.save_handler = memcached
session.save_path = "memcached:11211?persistent=1&timeout=2&retry_interval=5"
Session data contains all authentication state
The application stores complete authentication state in sessions. From objects/user.php:
// user.php:1521 — login check
$isLogged = !empty($_SESSION['user']['id']);
// user.php:1544 — admin check
return !empty($_SESSION['user']['isAdmin']);
Session data includes: user ID, email, username, password hash, admin flag, channel name, photo URL, and email verification status (user.php lines 329-733). All of this is readable and writable via the exposed memcached port.
Inconsistent defense: database services are correctly internal-only
The docker-compose.yml demonstrates awareness of proper service isolation — both database services have NO ports: directive:
# docker-compose.yml — database service (lines 136-163)
database:
build:
context: .
dockerfile: Dockerfile.mariadb
# ... NO ports: directive — internal only
networks:
- app_net
# docker-compose.yml — database_encoder service (lines 165-189)
database_encoder:
build:
context: .
dockerfile: Dockerfile.mariadb
# ... NO ports: directive — internal only
networks:
- app_net
Both databases are only reachable via the internal app_net Docker network. Memcached — which stores equally sensitive session data — should follow the same…
- Record
GHSA-xxpw-32hf-q8v9- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287, CWE-668
- Updated
- 2026-11-02
NVD
8.1
WWBN AVideo is an open source video platform. Prior to version 24.0, the official docker-compose.yml publishes the memcached service on host port 11211 (0.0.0.0:11211) with no authentication, while the Dockerfile configures PHP to store all user sessions in that memcached instance. An attacker who can reach port 11211 can read, modify, or flush session data — enabling session hijacking, admin impersonation, and mass session destruction without any application-level authentication. This issue has been patched in version 24.0.
- Record
CVE-2026-29093- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - CVSS 3.1
- 9.8 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287, CWE-668
- Updated
- 2026-11-02
OSV
8.1
WWBN AVideo: Unauthenticated PHP session store exposed to host network via published memcached port
WWBN AVideo is an open source video platform. Prior to version 24.0, the official docker-compose.yml publishes the memcached service on host port 11211 (0.0.0.0:11211) with no authentication, while the Dockerfile configures PHP to store all user sessions in that memcached instance. An attacker who can reach port 11211 can read, modify, or flush session data — enabling session hijacking, admin impersonation, and mass session destruction without any application-level authentication. This issue has been patched in version 24.0.
- Record
CVE-2026-29093- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287, CWE-668
- Updated
- 2026-11-02
OSVGHSA-xxpw-32hf-q8v9
8.1
AVideo: Unauthenticated PHP session store exposed to host network via published memcached port
Summary
The official docker-compose.yml publishes the memcached service on host port 11211 (0.0.0.0:11211) with no authentication, while the Dockerfile configures PHP to store all user sessions in that memcached instance. An attacker who can reach port 11211 can read, modify, or flush session data — enabling session hijacking, admin impersonation, and mass session destruction without any application-level authentication.
Severity
High (CVSS 3.1: 8.1)
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network —
docker-compose.ymlbinds memcached to0.0.0.0:11211on the host - Attack Complexity: High — exploitation requires port 11211 to be network-reachable, which depends on external firewall/security group configuration beyond the attacker's control
- Privileges Required: None — memcached has no authentication mechanism enabled
- User Interaction: None
- Scope: Unchanged — impact is to the AVideo application's session management
- Confidentiality Impact: High — session data includes user IDs, admin flags, email addresses, and password hashes
- Integrity Impact: High — an attacker can modify session data to inject admin privileges or impersonate any user
- Availability Impact: High —
flush_alldestroys all active sessions, forcing mass logout
Affected Component
docker-compose.yml— memcached serviceportsdirective (line 203)Dockerfile— PHP session configuration (lines 150-151)
CWE
- CWE-668: Exposure of Resource to Wrong Sphere
- CWE-287: Improper Authentication (memcached has no authentication)
Description
Memcached port unnecessarily published to host network
The docker-compose.yml publishes the memcached port to the Docker host's network interface:
# docker-compose.yml — lines 192-213
memcached:
image: memcached:alpine
restart: unless-stopped
command: >
memcached -m 512 -c 2048 -t ${NPROC:-4} -R 200
ports:
- "${MEMCACHE_PORT:-11211}:11211" # <-- Exposes to 0.0.0.0:11211
networks:
- app_net
The memcached command has no authentication flags:
- No
-Sflag (SASL authentication) - No
-l 127.0.0.1flag (interface binding restriction)
The default env.example reinforces this port:
MEMCACHE_PORT=11211
PHP sessions stored entirely in memcached
The Dockerfile configures PHP to use memcached as the session store:
; Dockerfile — lines 150-151
session.save_handler = memcached
session.save_path = "memcached:11211?persistent=1&timeout=2&retry_interval=5"
Session data contains all authentication state
The application stores complete authentication state in sessions. From objects/user.php:
// user.php:1521 — login check
$isLogged = !empty($_SESSION['user']['id']);
// user.php:1544 — admin check
return !empty($_SESSION['user']['isAdmin']);
Session data includes: user ID, email, username, password hash, admin flag, channel name, photo URL, and email verification status (user.php lines 329-733). All of this is readable and writable via the exposed memcached port.
Inconsistent defense: database services are correctly internal-only
The docker-compose.yml demonstrates awareness of proper service isolation — both database services have NO ports: directive:
# docker-compose.yml — database service (lines 136-163)
database:
build:
context: .
dockerfile: Dockerfile.mariadb
# ... NO ports: directive — internal only
networks:
- app_net
# docker-compose.yml — database_encoder service (lines 165-189)
database_encoder:
build:
context: .
dockerfile: Dockerfile.mariadb
# ... NO ports: directive — internal only
networks:
- app_net
Both databases are only reachable via the internal app_net Docker network. Memcached — which stores equally sensitive session data — should follow the same…
- Record
GHSA-xxpw-32hf-q8v9- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-287, CWE-668
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
wwbn/avideoPackagist |
through 21.0 | None known |
wwbn/avideoPackagist |
through 21.0, plus listed versions 10.410.81111.111.1.1 Show 7 moreShow less11.511.612.414.314.3.114.418.0 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-29093 is a high vulnerability (CVSS 8.1) in Wwbn Avideo, published March 5, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.54%, the 45th percentile. No source names a fixed version.
References
Left out here: the rest of 2 source descriptions. The JSON record has them.