| #
0579c2f8
|
| 19-Jul-2026 |
Andreas Gohr <andi@splitbrain.org> |
security(media): authorize the resolved target of media write operations
The media manager computed a permission level for the request's namespace and passed it to the media write helpers, which the
security(media): authorize the resolved target of media write operations
The media manager computed a permission level for the request's namespace and passed it to the media write helpers, which then acted on a target that need not live in that namespace. Reachability differs per helper:
- media_restore() took the id to restore from the separate "image" parameter, unrelated to the namespace the permission was computed for. A user with upload permission in any one namespace could restore revisions of media in namespaces they cannot write.
- media_upload() and media_upload_xhr() derive the target from the upload namespace plus a user-controlled filename that may carry its own namespace segments, so the target can only resolve into a sub-namespace of the upload namespace. Where that child has a stricter ACL, the parent's permission was applied instead.
- media_metasave() was not vulnerable: its target and its permission both derive from the same request id, so the namespaces always matched. It is changed only for consistency.
Each helper now recomputes the permission from its resolved target id, as media_delete() already does. The redundant $auth parameter is removed from media_restore() and media_metasave(), which have no other callers, and ignored but kept for compatibility in media_upload() and media_upload_xhr().
Severity: medium - an authenticated user with upload rights in one namespace can restore media revisions in other namespaces, or write into a stricter sub-namespace of one they can upload to; an authorization bypass affecting media integrity, not code execution or disclosure.
fixes #4702
show more ...
|
| #
093fe67e
|
| 07-Mar-2026 |
Andreas Gohr <andi@splitbrain.org> |
updated rector and applied it
|
| #
06c886b9
|
| 15-Sep-2024 |
Andreas Gohr <andi@splitbrain.org> |
Check security token for media restore. fix #4323
The whole media management is a mess, but this should fix the issue for now.
I think the severity is low since, this will only restore previously u
Check security token for media restore. fix #4323
The whole media management is a mess, but this should fix the issue for now.
I think the severity is low since, this will only restore previously uploaded media files, so permissions need to be high enogh for upload anyway.
show more ...
|
| #
62b265e6
|
| 30-Aug-2023 |
Gerrit Uitslag <klapinklapin@gmail.com> |
reformat lib/exe/mediamanager.php
|
| #
ba8f8349
|
| 30-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
manual code style fix
|
| #
c1482d1c
|
| 30-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
codestyle adjustments: function argument spacing
|
| #
e3c3abf1
|
| 29-Aug-2023 |
Andreas Gohr <andi@splitbrain.org> |
Apply rector fixes to lib/exe
|
| #
b43a1395
|
| 10-Mar-2023 |
Andreas Gohr <andi@splitbrain.org> |
MediaManager: remove check for removed option
The refshow option has been removed in 3e7e02779454686e1c639eb366a195bd1ab50458 and should not have been checked anymore. This fixes a warning on PHP8 w
MediaManager: remove check for removed option
The refshow option has been removed in 3e7e02779454686e1c639eb366a195bd1ab50458 and should not have been checked anymore. This fixes a warning on PHP8 when deleting a media file.
Replaces #3912
show more ...
|
| #
2ab59305
|
| 07-Aug-2022 |
Benjamin BERNARD <benjamin.bernard@benvii.com> |
:bug: Fixes #3738 , default value for mediamanger in fullscreen mode
|
| #
cbb44eab
|
| 15-Jun-2018 |
Andreas Gohr <andi@splitbrain.org> |
deprecated trigger_event() in favor of a static method on Event
|
| #
e725e2ad
|
| 30-Apr-2016 |
Gerrit Uitslag <klapinklapin@gmail.com> |
populate the JSINFO array in similar way as via doku.php
Prevents overwriting already added stuff.
#1327
|
| #
4547e69e
|
| 04-Apr-2016 |
lisps <lisps@users.noreply.github.com> |
add conf as global
restoring of mediafiles failed
|
| #
893747da
|
| 30-Jul-2014 |
Andreas Gohr <gohr@cosmocode.de> |
fix mediamanager messages. closes #792
|
| #
0e80bb5e
|
| 05-Mar-2014 |
Christopher Smith <chris@jalakai.co.uk> |
use empty() where array values might not be set
|
| #
ab4d3f3b
|
| 15-Oct-2013 |
Gerrit Uitslag <klapinklapin@gmail.com> |
fix expression passed by reference
|
| #
a5365cbe
|
| 03-Aug-2013 |
Matthias Schulte <post@lupo49.de> |
JSINFO in Media Manager: Initialize with empty array, as $ID and $NS aren't useful and available. This is just for adding more values in e. g. an action plugin.
|
| #
d1e37fb0
|
| 03-Aug-2013 |
Matthias Schulte <post@lupo49.de> |
Populate global variable JSINFO also in the Media Manager popup
|
| #
3074e342
|
| 03-Mar-2013 |
Christopher Smith <chris@jalakai.co.uk> |
fix comment grammar
|
| #
ca22711e
|
| 03-Mar-2013 |
Christopher Smith <chris@jalakai.co.uk> |
make global, ensure created in mediamanager is global and merged with any pre-existing
|
| #
1fe0882c
|
| 25-Feb-2013 |
Christopher Smith <chris@jalakai.co.uk> |
Merge branch 'master' into FS#2415
|
| #
1015a57d
|
| 16-Feb-2013 |
Christopher Smith <chris@jalakai.co.uk> |
FS#2415 add to mediamanager (refactor pageinfo() and shift MEDIAMANAGER_STARTED after mediainfo() sets up )
|
| #
dd90013a
|
| 16-Feb-2013 |
Michael Hamann <michael@content-space.de> |
Media manager: don't create empty namespaces FS#2642
Previously the media manager created an empty namespace whenever you opened a non-existing namespace with upload permissions. Now the current nam
Media manager: don't create empty namespaces FS#2642
Previously the media manager created an empty namespace whenever you opened a non-existing namespace with upload permissions. Now the current namespace is only displayed in the tree but not actually created.
show more ...
|
| #
9d2e1be6
|
| 16-Feb-2013 |
Andreas Gohr <andi@splitbrain.org> |
introduced http_status() for sending HTTP status code FS#1698
It seems, some servers require a special Status: header for sending the HTTP status code from PHP (F)CGI to the server. This patch intro
introduced http_status() for sending HTTP status code FS#1698
It seems, some servers require a special Status: header for sending the HTTP status code from PHP (F)CGI to the server. This patch introduces a new function (adopted from CodeIgniter) for simplifying the status handling.
show more ...
|
| #
361f1762
|
| 29-Jun-2012 |
Tom N Harris <tnharris@whoopdedo.org> |
fix necessary global declaration
|
| #
8108113c
|
| 29-Jun-2012 |
Tom N Harris <tnharris@whoopdedo.org> |
Input validation for media manager
|