CVE-2025-31493

Source
https://nvd.nist.gov/vuln/detail/CVE-2025-31493
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-31493.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-31493
Aliases
Published
2025-05-13T16:15:30Z
Modified
2025-05-24T03:40:15.947639Z
Summary
[none]
Details

Kirby is an open-source content management system. A vulnerability in versions prior to 3.9.8.3, 3.10.1.2, and 4.7.1 affects all Kirby sites that use the collection() helper or $kirby->collection() method with a dynamic collection name (such as a collection name that depends on request or user data). Sites that only use fixed calls to the collection() helper/$kirby->collection() method (i.e. calls with a simple string for the collection name) are not affected. A missing path traversal check allowed attackers to navigate and access all files on the server that were accessible to the PHP process, including files outside of the collections root or even outside of the Kirby installation. PHP code within such files was executed. Such attacks first require an attack vector in the site code that is caused by dynamic collection names, such as collection('tags-' . get('tags')). It generally also requires knowledge of the site structure and the server's file system by the attacker, although it can be possible to find vulnerable setups through automated methods such as fuzzing. In a vulnerable setup, this could cause damage to the confidentiality and integrity of the server. The problem has been patched in Kirby 3.9.8.3, Kirby 3.10.1.2, and Kirby 4.7.1. In all of the mentioned releases, the maintainers of Kirby have added a check for the collection path that ensures that the resulting path is contained within the configured collections root. Collection paths that point outside of the collections root will not be loaded.

References

Affected packages

Git / github.com/getkirby/kirby

Affected ranges

Type
GIT
Repo
https://github.com/getkirby/kirby
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Fixed
Fixed

Affected versions

3.*

3.0.0
3.0.1
3.0.2
3.0.2-rc.1
3.0.3
3.0.3-rc.1
3.0.3-rc.2
3.0.3-rc.3
3.1.0
3.1.0-rc.1
3.1.1
3.1.2
3.1.2-rc.1
3.1.3
3.1.3-rc.1
3.1.4
3.1.4-rc.1
3.2.0
3.2.0-rc.1
3.2.0-rc.2
3.2.0-rc.3
3.2.0-rc.4
3.2.1
3.2.1-rc.1
3.2.2
3.2.3
3.2.3-rc.1
3.2.4
3.2.4-rc.1
3.2.5
3.2.5-rc.1
3.2.5-rc.2
3.3.0
3.3.0-rc.1
3.3.0-rc.2
3.3.0-rc.3
3.3.0-rc.4
3.3.0-rc.5
3.3.1
3.3.1-rc.1
3.3.2
3.3.2-rc.1
3.3.3
3.3.3-rc.1
3.3.4
3.3.4-rc.1
3.3.5
3.3.5-rc.1
3.3.6
3.4.0
3.4.0-rc.1
3.4.0-rc.2
3.4.0-rc.3
3.4.1
3.4.2
3.4.3
3.4.4
3.4.4-rc.1
3.4.5
3.5.0
3.5.0-rc.1
3.5.0-rc.2
3.5.0-rc.3
3.5.0-rc.4
3.5.0-rc.5
3.5.0-rc.6
3.5.0-rc.7
3.5.1
3.5.1-rc.1
3.5.2
3.5.2-rc.1
3.5.3
3.5.3.1
3.5.4
3.5.5
3.5.5-rc.1
3.5.6
3.5.6-rc.1
3.5.7
3.5.7-rc.1
3.5.7.1
3.6.0
3.6.0-alpha.1
3.6.0-alpha.2
3.6.0-alpha.3
3.6.0-alpha.4
3.6.0-beta.1
3.6.0-beta.2
3.6.0-beta.3
3.6.0-rc.1
3.6.0-rc.2
3.6.0-rc.3
3.6.0-rc.4
3.6.0-rc.5
3.6.1
3.6.1.1
3.6.2
3.6.2-rc.1
3.6.2-rc.2
3.6.2-rc.3
3.6.3
3.6.3-rc.1
3.6.3-rc.2
3.6.3.1
3.6.4
3.6.4-rc.1
3.6.5
3.6.5-rc.1
3.6.6
3.6.6-rc.1
3.7.0
3.7.0-rc.1
3.7.0-rc.2
3.7.0-rc.3
3.7.0.1
3.7.0.2
3.7.1
3.7.1-rc.1
3.7.2
3.7.2-rc.1
3.7.2.1
3.7.3
3.7.3-rc.1
3.7.4
3.7.4-rc.1
3.7.5
3.8.0
3.8.0-rc.1
3.8.0-rc.2
3.8.0-rc.3
3.8.1
3.8.1-rc.1
3.8.1.1
3.8.2
3.8.2-rc.1
3.8.3
3.8.3-rc.1
3.8.3-rc.2
3.8.4
3.9.0
3.9.0-rc.1
3.9.0-rc.2
3.9.1
3.9.1-rc.1
3.9.2
3.9.2-rc.1
3.9.3
3.9.3-rc.1
3.9.4
3.9.4-rc.1
3.9.5
3.9.5-rc.1
3.9.6
3.9.6-rc.1
3.9.6.1
3.9.7
3.9.7-rc.1
3.9.8
3.9.8-rc.1

4.*

4.0.0
4.0.0-alpha.1
4.0.0-alpha.2
4.0.0-alpha.3
4.0.0-alpha.4
4.0.0-alpha.5
4.0.0-alpha.6
4.0.0-alpha.7
4.0.0-beta.1
4.0.0-beta.2
4.0.0-beta.3
4.0.0-rc.1
4.0.0-rc.2
4.0.0-rc.3
4.0.0-rc.4
4.0.1
4.0.2
4.0.3
4.1.0
4.1.0-rc.1
4.1.0-rc.2
4.1.0-rc.3
4.1.1
4.1.2
4.2.0
4.2.0-rc.1
4.3.0
4.3.0-rc.1
4.3.1
4.4.0
4.4.0-rc.1
4.4.1
4.5.0
4.5.0-rc.1
4.6.0
4.6.0-rc.1
4.6.1
4.7.0
4.7.0-rc.1