/

CVE-2026-63146

Severity:

CRITICAL RISK

(9.8)

Code Injection (CWE-94) in Omnispace Agora Installer

CVE-2026-63146

Deferred

Vulnerability type

Category:

Code Injection

CWE:

CWE-94

Impact:

Unauthenticated Remote Code Execution

Severity:

CRITICAL RISK

(9.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

Omnispace Agora contains a code injection vulnerability in its installation and configuration-writing logic, where attacker-controlled values may be written into the PHP configuration file without adequate escaping. Combined with an SQL injection path that permits installer re-entry, this may allow unauthenticated attackers to execute arbitrary PHP code on the underlying system.

Omnispace Agora contains a code injection vulnerability in its installation and configuration-writing logic, where attacker-controlled values may be written into the PHP configuration file without adequate escaping. Combined with an SQL injection path that permits installer re-entry, this may allow unauthenticated attackers to execute arbitrary PHP code on the underlying system.

Affected context

The vulnerability affects Omnispace Agora deployments before 26.10.0 when installation-related functionality remains reachable and attacker-controlled database or configuration inputs can influence config.inc.php. Risk is increased when the application permits unauthenticated SQL injection, supports stacked queries through emulated PDO prepares, and allows the installer workflow to be invoked after initial setup.

The vulnerability affects Omnispace Agora deployments before 26.10.0 when installation-related functionality remains reachable and attacker-controlled database or configuration inputs can influence config.inc.php. Risk is increased when the application permits unauthenticated SQL injection, supports stacked queries through emulated PDO prepares, and allows the installer workflow to be invoked after initial setup.

Exploit preconditions

  • Attack surface: Web-accessible installation and database-handling functionality
  • Required access: No prior authentication may be required if the vulnerable installer and SQL injection paths are exposed
  • Trigger point: Database input processing followed by installer configuration updates
  • Why exploitation is possible: Stacked-query support can enable installer re-entry, while insufficiently escaped values are written into a PHP configuration file and later interpreted as executable code
  • Attack surface: Web-accessible installation and database-handling functionality
  • Required access: No prior authentication may be required if the vulnerable installer and SQL injection paths are exposed
  • Trigger point: Database input processing followed by installer configuration updates
  • Why exploitation is possible: Stacked-query support can enable installer re-entry, while insufficiently escaped values are written into a PHP configuration file and later interpreted as executable code

Why this happens

The underlying issue is a failure to preserve the boundary between data and executable PHP configuration content. File::updateConfigFile() and DbInstall::dbControl() can write attacker-controlled values into config.inc.php without sufficient escaping or constrained serialization, while emulated PDO prepares may allow stacked SQL statements to influence control flow. This behavior maps to CWE-94: Improper Control of Generation of Code, because untrusted input can become executable source code.

The underlying issue is a failure to preserve the boundary between data and executable PHP configuration content. File::updateConfigFile() and DbInstall::dbControl() can write attacker-controlled values into config.inc.php without sufficient escaping or constrained serialization, while emulated PDO prepares may allow stacked SQL statements to influence control flow. This behavior maps to CWE-94: Improper Control of Generation of Code, because untrusted input can become executable source code.

Potential impact

  • Unauthenticated attackers may execute arbitrary PHP code
  • The underlying host or application runtime could be compromised
  • Application data may be accessed, modified, or destroyed
  • Credentials and configuration secrets may be exposed
  • The compromised system could be used for lateral movement or persistence
  • Unauthenticated attackers may execute arbitrary PHP code
  • The underlying host or application runtime could be compromised
  • Application data may be accessed, modified, or destroyed
  • Credentials and configuration secrets may be exposed
  • The compromised system could be used for lateral movement or persistence

General mitigation guidance

Mitigation generally focuses on maintaining strict separation between user-controlled data, SQL statements, and executable configuration content.

Common defensive patterns include:

  • Using parameterized queries with native statement handling and rejecting stacked-query behavior where it is not required
  • Restricting installer functionality to controlled administrative or deployment contexts
  • Writing configuration through typed, structured serializers rather than source-code concatenation
  • Applying context-appropriate escaping and allowlisted validation to every configuration value
  • Preventing runtime modification of PHP source and configuration files
  • Running the application with least-privilege filesystem and operating-system permissions
  • Removing or disabling installation endpoints after deployment

Mitigation generally focuses on maintaining strict separation between user-controlled data, SQL statements, and executable configuration content.

Common defensive patterns include:

  • Using parameterized queries with native statement handling and rejecting stacked-query behavior where it is not required
  • Restricting installer functionality to controlled administrative or deployment contexts
  • Writing configuration through typed, structured serializers rather than source-code concatenation
  • Applying context-appropriate escaping and allowlisted validation to every configuration value
  • Preventing runtime modification of PHP source and configuration files
  • Running the application with least-privilege filesystem and operating-system permissions
  • Removing or disabling installation endpoints after deployment

How teams detect issues like this

Organizations can look for:

  • Static analysis findings involving string concatenation or interpolation into PHP configuration files
  • SQL APIs configured to permit emulated prepares or multiple statements
  • Installer endpoints that remain publicly reachable after deployment
  • Code paths where database input reaches file-writing or source-generation routines without strict validation
  • Unexpected changes to config.inc.php, web-server process behavior, or outbound connections from the application host

CI policy checks, file-integrity monitoring, web-application firewall telemetry, and automated code-review tools can help identify these patterns.

Organizations can look for:

  • Static analysis findings involving string concatenation or interpolation into PHP configuration files
  • SQL APIs configured to permit emulated prepares or multiple statements
  • Installer endpoints that remain publicly reachable after deployment
  • Code paths where database input reaches file-writing or source-generation routines without strict validation
  • Unexpected changes to config.inc.php, web-server process behavior, or outbound connections from the application host

CI policy checks, file-integrity monitoring, web-application firewall telemetry, and automated code-review tools can help identify these patterns.

Sources

SourceLink
github.comgithub.com/xech/agora-project/releases/tag/26.10
agora-project.netagora-project.net/
vulncheck.comvulncheck.com/advisories/omnispace-agora-project-php-code-injection-via-config-inc-php

Frequently asked

questions

Yes. If the vulnerable installer and SQL injection functionality are exposed, the described attack path may be reachable over the network without prior authentication.

No authenticated account may be necessary when the affected installation and database-handling endpoints are publicly accessible. Exposure depends on deployment configuration and endpoint protections.

Separate data from executable configuration, use strict parameterized database access without stacked-query support where possible, and restrict or remove installer functionality after deployment.

Enforce allowlisted validation, context-aware escaping, secure configuration serialization, least-privilege file permissions, and automated checks for data flowing into source-code generation or file-writing operations.

Yes. If the vulnerable installer and SQL injection functionality are exposed, the described attack path may be reachable over the network without prior authentication.

No authenticated account may be necessary when the affected installation and database-handling endpoints are publicly accessible. Exposure depends on deployment configuration and endpoint protections.

Separate data from executable configuration, use strict parameterized database access without stacked-query support where possible, and restrict or remove installer functionality after deployment.

Enforce allowlisted validation, context-aware escaping, secure configuration serialization, least-privilege file permissions, and automated checks for data flowing into source-code generation or file-writing operations.

Find out what's already
exploitable in your codebase.