[SECURITY] Unsafe unserialize of GET parameter in Add-Wizard 06/26206/2
authorSteffen Ritter <info@rs-websystems.de>
Tue, 10 Dec 2013 09:53:31 +0000 (10:53 +0100)
committerOliver Hader <oliver.hader@typo3.org>
Tue, 10 Dec 2013 09:53:35 +0000 (10:53 +0100)
commit163947aef180e184d543e9a0b1879f49e87dd884
treec04fc14a7ba4488c8f228510a5750dbc096c7317
parentd21a628c6c2f91450b2502b0dc1730f6e90f875d
[SECURITY] Unsafe unserialize of GET parameter in Add-Wizard

If the TCEforms wizard "add" is used, the original opened document
is closed and a new one is created in which you then add a new
element to be related.

In order to "store" the originating document which has been
edited, the Wizard/AddController and EditDocumentController
exchange state data in an URL-parameter.

This state-array is serialized in the EditDocumentController
and again unserialized in the Wizard/AddController from that
GET parameter. Without any checks, every code can be injected
to be unserialized here - even though we just need an array
with some data.

This patch changes serialize/unserialize to json_encode and
json_decode. Since the GET parameter only is used in
conjunction of these two classes it is save to changes the
format how the URL parameters are serialized.

Change-Id: I4d3d0915a90647ec6cf08a86c73533ab2159a828
Fixes: #54073
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Security-Commit: 9790d0e627d94c0efad600e451c3e7e10584028b
Security-Bulletin: TYPO3-CORE-SA-2013-004
Reviewed-on: https://review.typo3.org/26206
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/Wizard/AddController.php