/

CVE-2026-108113

Severity:

HIGH RISK

(8.8)

Unrestricted Upload (CWE-434) in ILIAS QTI Import Handler

CVE-2026-108113

Deferred

Vulnerability type

Category:

Unrestricted File Upload

CWE:

CWE-434

Impact:

Remote Code Execution

Severity:

HIGH RISK

(8.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

An unrestricted file upload vulnerability in ILIAS QTI question import image handling can allow authenticated authors to place executable files in a web-served directory. If an attacker has question pool import rights and can submit a crafted archive, this may result in remote code execution under the web server account.

An unrestricted file upload vulnerability in ILIAS QTI question import image handling can allow authenticated authors to place executable files in a web-served directory. If an attacker has question pool import rights and can submit a crafted archive, this may result in remote code execution under the web server account.

Affected context

The vulnerability occurs in ILIAS deployments that process QTI question pool imports and handle images through the affected material security component. Risk increases when imported files can be written into a web-served directory without reliably restricting file types, enforcing safe storage, or preventing server-side execution.

The vulnerability occurs in ILIAS deployments that process QTI question pool imports and handle images through the affected material security component. Risk increases when imported files can be written into a web-served directory without reliably restricting file types, enforcing safe storage, or preventing server-side execution.

Exploit preconditions

  • Attack surface: QTI question pool import and image extraction functionality
  • Required access: An authenticated account with permission to import question pools
  • Trigger point: Processing a crafted QTI archive during import
  • Why exploitation is possible: Uploaded content can be written to a web-served image directory, where executable server-side files may be interpreted by the web server
  • Attack surface: QTI question pool import and image extraction functionality
  • Required access: An authenticated account with permission to import question pools
  • Trigger point: Processing a crafted QTI archive during import
  • Why exploitation is possible: Uploaded content can be written to a web-served image directory, where executable server-side files may be interpreted by the web server

Why this happens

The underlying flaw is insufficient validation and isolation of files extracted from an uploaded archive. The import process permits attacker-controlled content to reach a web-accessible directory without reliably enforcing an allowlist of non-executable image formats or separating uploaded assets from executable application paths. This behavior maps to CWE-434: Unrestricted Upload of File with Dangerous Type.

The underlying flaw is insufficient validation and isolation of files extracted from an uploaded archive. The import process permits attacker-controlled content to reach a web-accessible directory without reliably enforcing an allowlist of non-executable image formats or separating uploaded assets from executable application paths. This behavior maps to CWE-434: Unrestricted Upload of File with Dangerous Type.

Potential impact

  • Remote code execution as the web server user may occur
  • Application data and stored learning content could be accessed or modified
  • Authentication material or configuration data may be exposed
  • The ILIAS instance could be used to affect connected services or users
  • Integrity of imported question pools and other educational content could be compromised
  • Remote code execution as the web server user may occur
  • Application data and stored learning content could be accessed or modified
  • Authentication material or configuration data may be exposed
  • The ILIAS instance could be used to affect connected services or users
  • Integrity of imported question pools and other educational content could be compromised

General mitigation guidance

Mitigation generally focuses on reducing trust in imported archives and ensuring uploaded assets cannot become executable server content.

Common defensive patterns include:

  • Allowing only explicitly supported image formats and validating file content rather than relying on names or extensions
  • Storing uploaded and extracted files outside web-served executable paths where possible
  • Applying server configuration that prevents script execution in upload and image directories
  • Using generated filenames and rejecting path traversal, archive nesting, and unexpected metadata
  • Enforcing least privilege for the web server and limiting its access to application and storage resources
  • Applying resource limits and security review to archive extraction workflows

Mitigation generally focuses on reducing trust in imported archives and ensuring uploaded assets cannot become executable server content.

Common defensive patterns include:

  • Allowing only explicitly supported image formats and validating file content rather than relying on names or extensions
  • Storing uploaded and extracted files outside web-served executable paths where possible
  • Applying server configuration that prevents script execution in upload and image directories
  • Using generated filenames and rejecting path traversal, archive nesting, and unexpected metadata
  • Enforcing least privilege for the web server and limiting its access to application and storage resources
  • Applying resource limits and security review to archive extraction workflows

How teams detect issues like this

Organizations can identify similar risks through:

  • Static analysis for archive extraction followed by filesystem writes without type, path, or execution checks
  • Code review signals such as extension-only validation, user-controlled filenames, and writes into web roots
  • Tests that verify uploaded files cannot be interpreted as server-side scripts
  • Web-server policy checks ensuring asset directories disable script execution
  • Monitoring for unexpected executable extensions, server configuration files, or new files in image directories
  • Automated security review tools that flag dangerous upload and archive-handling patterns

Organizations can identify similar risks through:

  • Static analysis for archive extraction followed by filesystem writes without type, path, or execution checks
  • Code review signals such as extension-only validation, user-controlled filenames, and writes into web roots
  • Tests that verify uploaded files cannot be interpreted as server-side scripts
  • Web-server policy checks ensuring asset directories disable script execution
  • Monitoring for unexpected executable extensions, server configuration files, or new files in image directories
  • Automated security review tools that flag dangerous upload and archive-handling patterns

Sources

SourceLink
docu.ilias.dedocu.ilias.de/go/blog/15821/950
docu.ilias.dedocu.ilias.de/go/blog/15821/951
docu.ilias.dedocu.ilias.de/go/blog/15821/952
github.comgithub.com/ILIAS-eLearning/ILIAS
github.comgithub.com/ILIAS-eLearning/ILIAS/blob/v10.11/components/ILIAS/QTI/classes/class.ilQtiMatImageSecurity.php#L110-L122
github.comgithub.com/ILIAS-eLearning/ILIAS/commit/47c8462bf46bbebd543a9f3b39c7896b0e9e7362
github.comgithub.com/ILIAS-eLearning/ILIAS/commit/58ee5b1767212530f9948adb0e7d5aecec66ce60
github.comgithub.com/ILIAS-eLearning/ILIAS/commit/5b200351330bee698432a45c0877c5bc694c367a
vulncheck.comvulncheck.com/advisories/ilias-before-9.24-10.12-and-11.5-unrestricted-file-upload-via-qti-import

Frequently asked

questions

It can be exploitable through the ILIAS application by an authenticated user who has question pool import rights, provided the deployment exposes the affected import and file-serving behavior.

Not necessarily. The relevant prerequisite is permission to import question pools; the exact account scope depends on the deployment's authorization configuration.

Treat imported archive contents as untrusted, allow only validated image formats, store them outside executable web paths, and explicitly disable server-side execution in asset directories.

Combine least-privilege permissions, content-based file validation, safe archive extraction, web-server execution controls, and automated tests covering uploaded-file handling.

It can be exploitable through the ILIAS application by an authenticated user who has question pool import rights, provided the deployment exposes the affected import and file-serving behavior.

Not necessarily. The relevant prerequisite is permission to import question pools; the exact account scope depends on the deployment's authorization configuration.

Treat imported archive contents as untrusted, allow only validated image formats, store them outside executable web paths, and explicitly disable server-side execution in asset directories.

Combine least-privilege permissions, content-based file validation, safe archive extraction, web-server execution controls, and automated tests covering uploaded-file handling.

Find out what's already
exploitable in your codebase.