Unbundle ext/wddx View as Markdown

Implemented (PHP 7.4)
Authors
Christoph M. Becker, cmb@php.net
Date
2018-01-17
Version
1.1.1
Source
wiki.php.net/rfc/deprecate-and-remove-ext-wddx

Votes

Unbundle ext/wddx closed
Yes
30
No
0
30 voters
ashnazg Yes 2019-01-23 14:18
bwoebi Yes 2019-01-24 12:27
carusogabriel Yes 2019-01-23 10:25
cmb Yes 2019-01-17 14:19
diegopires Yes 2019-01-28 14:04
emir Yes 2019-01-23 07:42
galvao Yes 2019-01-18 17:25
girgias Yes 2019-01-17 14:33
guilhermeblanco Yes 2019-01-21 05:13
heiglandreas Yes 2019-01-21 06:57
hywan Yes 2019-01-22 12:34
jhdxr Yes 2019-01-17 16:53
jpauli Yes 2019-01-31 18:47
kalle Yes 2019-01-17 14:35
kguest Yes 2019-01-18 08:43
laruence Yes 2019-01-21 11:21
lex Yes 2019-01-18 09:36
malukenho Yes 2019-01-22 12:56
mariano Yes 2019-01-30 11:22
nikic Yes 2019-01-18 11:40
ocramius Yes 2019-01-17 14:21
petk Yes 2019-01-17 17:05
rasmus Yes 2019-01-22 14:19
remi Yes 2019-01-17 15:26
reywob Yes 2019-01-23 15:42
salathe Yes 2019-01-17 22:34
sebastian Yes 2019-01-17 15:58
stas Yes 2019-01-17 18:28
trowski Yes 2019-01-31 17:28
yunosh Yes 2019-01-18 13:23
Unbundle ext/wddx details closed
depr. 7.4/move 8.0(1)
4
depr. and move 7.4(2)
19
move 7.4(3)
2
dump 7.4(4)
3
28 voters
ashnazg depr. and move 7.4(2) 2019-01-23 14:36
bwoebi depr. and move 7.4(2) 2019-01-24 12:28
carusogabriel depr. and move 7.4(2) 2019-01-23 10:27
chregu depr. and move 7.4(2) 2019-01-17 15:44
diegopires depr. and move 7.4(2) 2019-01-28 14:05
emir depr. and move 7.4(2) 2019-01-23 07:42
galvao depr. 7.4/move 8.0(1) 2019-01-18 17:26
girgias dump 7.4(4) 2019-01-17 14:38
guilhermeblanco depr. and move 7.4(2) 2019-01-21 05:13
heiglandreas depr. 7.4/move 8.0(1) 2019-01-21 07:00
hywan depr. and move 7.4(2) 2019-01-22 12:34
jhdxr depr. 7.4/move 8.0(1) 2019-01-17 16:54
kalle dump 7.4(4) 2019-01-17 14:36
kguest depr. and move 7.4(2) 2019-01-18 08:43
lex depr. and move 7.4(2) 2019-01-18 09:38
malukenho depr. and move 7.4(2) 2019-01-22 12:56
mariano depr. and move 7.4(2) 2019-01-30 11:22
nikic depr. and move 7.4(2) 2019-01-18 11:40
ocramius depr. and move 7.4(2) 2019-01-17 14:22
petk depr. and move 7.4(2) 2019-01-17 17:09
rasmus depr. and move 7.4(2) 2019-01-22 14:19
remi move 7.4(3) 2019-01-17 15:28
reywob depr. and move 7.4(2) 2019-01-23 15:42
salathe depr. 7.4/move 8.0(1) 2019-01-17 22:34
sebastian dump 7.4(4) 2019-01-17 15:58
stas move 7.4(3) 2019-01-17 18:28
trowski depr. and move 7.4(2) 2019-01-31 17:29
yunosh depr. and move 7.4(2) 2019-01-18 13:23

Discussions on the mailing list

WDDX serialization and security
by Nikita Popov · 9 messages
[RFC] Deprecate class instance deserialization in WDDX
by Christoph M. Becker · 5 messages
[RFC} Deprecate and Remove ext/wwdx
by Christoph M. Becker · 16 messages
[VOTE] RFC: Unbundle ext/wddx
by Christoph M. Becker · 17 messages

RFC text

Copied from wiki.php.net, last synchronized Oct 13, 2026 11:51 UTC

Introduction

WDDX has been designed as programming language independent data exchange format for the web1). However, it never has been formally standardized, and it appears that it has been mostly superseeded by other data exchange formats such as JSON.

A particular problem is that PHP 4.0.0 added the ability to (de)serialize class instances2) including calls to _​_sleep() and __wakeup(), respectively. Therefore, wddx_deserialize() must not be called on untrusted user input to avoid remote code execution, basically defeating the purpose of WDDX. A former RFC proposed to “Deprecate class instance deserialization in WDDX”, but it has been withdrawn since that would break BC, and there seemed to be generally more consensus on deprecating the extension altogether.

Proposal

Therefore I suggest to unbundle ext/wddx. A secondary vote will be held about the detailed procedure:

  1. deprecate all functionality of the extension for PHP 7.4; move to PECL for PHP 8
  2. deprecate all functionality of the extension *and* move to PECL for PHP 7.4
  3. move the extension to PECL for PHP 7.4
  4. dump the extension for PHP 7.4 (unbundle without moving to PECL or somewhere else)

Backward Incompatible Changes

Obviously, code using the wddx extension would issue deprecation warnings, and/or would have to use the wddx extension from PECL (or somewhere else), or be rewritten.

Open Issues

  • None

Voting

The primary vote is about whether to unbundle ext/wddx, which requires a 2/3 majority.

Vote: Unbundle ext/wddx — Yes: 30 · No: 0 (closed)

A secondary vote is held about the detailed procedure (see the proposal above). If the primary vote passes, the alternative with the most votes will be accepted.

Vote: Unbundle ext/wddx details — depr. 7.4/move 8.0(1): 4 · depr. and move 7.4(2): 19 · move 7.4(3): 2 · dump 7.4(4): 3 (closed)

Voting starts on 2019-01-17, and ends on 2019-01-31.

Patches and Tests

None, yet.

Implementation

  1. Applied to PHP-7.4
  2. Documentation

References

Rejected Features

None.

1)http://xml.coverpages.org/wddx0090-dtd-19980928.txt

2)http://git.php.net/?p=php-src.git;a=commit;h=33eb7d83cab733a3397168d35506e750e1e30d65