Skip to main content

Summary

The FileServer servlet in Silverpeas through 6.4.6 treats the SourceFile parameter as an absolute filesystem path when TypeUpload is present and grants access when ComponentId is omitted. An authenticated user can combine these behaviors to read arbitrary files available to the application server process.
The original research assessment uses changed scope and scores this issue 7.7 High under CVSS 3.1. The published CVE record currently uses an unchanged-scope vector and scores it 6.5 Medium.

Technical details

Three behaviors combine to expose an arbitrary file.

1. Omitting ComponentId bypasses the component check

FileServer passes the optional component identifier into isUserAllowed(). A missing value is treated as personal-space access and allowed without checking a component:
An authenticated user can reach the file-serving path by leaving ComponentId out of the request.

2. TypeUpload changes SourceFile into an absolute path

The servlet creates a file descriptor from the request-controlled SourceFile. Merely including TypeUpload, even with an empty value, enables absolute-path mode:
The file provider then uses that value without prepending a Silverpeas data directory:

3. The path check only looks for traversal sequences

The path guard rejects ../ and /.., but it does not reject paths that begin at the filesystem root:
/etc/passwd contains no traversal sequence, so it reaches the file provider and is streamed back to the user.

Reproduction

Sign in with a low-privilege account and send the following request. ComponentId is intentionally absent, and TypeUpload is present with an empty value:
The response contains the requested operating-system file:
Authenticated FileServer request returning the contents of /etc/passwd

Reading /etc/passwd through FileServer

Impact

Any authenticated user can read files available to the Silverpeas operating-system account. Depending on the deployment, this can expose application configuration, database credentials, private keys, deployment secrets, application data, and operating-system files.

Remediation

Upgrade to Silverpeas 6.4.7 or later. File paths should be resolved below a server-selected data root. If absolute-path support must remain, it should be restricted to explicit server-side directories and authorized call paths. A missing ComponentId should not grant unconditional access, and relative-path validation should also reject absolute paths where only relative paths are expected.

References

Last modified on September 8, 2026