Skip to content

Incorrect handling of incomplete array #5

@Ankk98

Description

@Ankk98
  • Incorrect handling of incomplete array
(byebug) str
"a:215:{i:0;i:9;i:1;i:65;i:2;i:65;i:3;i:65;i:4;i:65;i:5;i:65;i:6;i:65;i:7;i:65;i:8;i:65;i:9;i:65;i:10;i:65;i:11;i:65;i:12;i:65;i:13;i:65;i:14;i:65;i:15;i:65;i:16;i:65;i:17;i:65;i:18;i:65;i:19;i:65;i:20;i:65;i:21;i:65;i:22;i:65;i:23;i:65;i:24;i:65;i:25;i:65;i:26;i:65;i:27;i:65;i:28;i:65;i:29;i:65;i:30;i:65;i:31;i:65;i:32;i:65;i:33;i:65;i:34;i:65;i:35;i:65;i:36;i:65;i:37;i:65;i:38;i:65;i:39;i:65;i:40;i:65;i:41;i:65;i:42;i:65;i:43;i:65;i:44;i:65;i:45;i:65;i:46;i:65;i:47;i:65;i:48;i:65;i:49;i:65;i:50;i:65;i:51;i:65;i:52;i:65;i:53;i:65;i:54;i:65;i:55;i:65;i:56;i:65;i:57;i:65;i:58;i:65;i:59;i:65;i:60;i:65;i:61;i:65;i:62;i:65;i:63;i:65;i:64;i:65;i:65;i:65;i:66;i:65;i:67;i:65;i:68;i:65;i:69;i:65;i:70;i:65;i:71;i:65;i:72;i:65;i:73;i:65;i:74;i:65;i:75;i:65;i:76;i:65;i:77;i:65;i:78;i:65;i:79;i:65;i:80;i:65;i:81;i:65;i:82;i:65;i:83;i:65;i:84;i:65;i:85;i:65;i:86;i:65;i:87;i:65;i:88;i:65;i:89;i:65;i:90;i:65;i:91;i:65;i:92;i:65;i:93;i:65;i:94;i:65;i:95;i:65;i:96;i:65;i:97;i:65;i:98;i:65;i:99;i:65;i:100;i:65;i:101;i:65;i:102;"
(byebug) PhpSerializer.unserialize(str)
{0=>9, 1=>65, 2=>65, 3=>65, 4=>65, 5=>65, 6=>65, 7=>65, 8=>65, 9=>65, 10=>65, 11=>65, 12=>65, 13=>65, 14=>65, 15=>65, 16=>65, 17=>65, 18=>65, 19=>65, 20=>65, 21=>65, 22=>65, 23=>65, 24=>65, 25=>65, 26=>65, 27=>65, 28=>65, 29=>65, 30=>65, 31=>65, 32=>65, 33=>65, 34=>65, 35=>65, 36=>65, 37=>65, 38=>65, 39=>65, 40=>65, 41=>65, 42=>65, 43=>65, 44=>65, 45=>65, 46=>65, 47=>65, 48=>65, 49=>65, 50=>65, 51=>65, 52=>65, 53=>65, 54=>65, 55=>65, 56=>65, 57=>65, 58=>65, 59=>65, 60=>65, 61=>65, 62=>65, 63=>65, 64=>65, 65=>65, 66=>65, 67=>65, 68=>65, 69=>65, 70=>65, 71=>65, 72=>65, 73=>65, 74=>65, 75=>65, 76=>65, 77=>65, 78=>65, 79=>65, 80=>65, 81=>65, 82=>65, 83=>65, 84=>65, 85=>65, 86=>65, 87=>65, 88=>65, 89=>65, 90=>65, 91=>65, 92=>65, 93=>65, 94=>65, 95=>65, 96=>65, 97=>65, 98=>65, 99=>65, 100=>65, 101=>65, 102=>false, false=>false}
  • Handling by PHP 8.2.10-2ubuntu1
php > $str = "a:215:{i:0;i:9;i:1;i:65;i:2;i:65;i:3;i:65;i:4;i:65;i:5;i:65;i:6;i:65;i:7;i:65;i:8;i:65;i:9;i:65;i:10;i:65;i:11;i:65;i:12;i:65;i:13;i:65;i:14;i:65;i:15;i:65;i:16;i:65;i:17;i:65;i:18;i:65;i:19;i:65;i:20;i:65;i:21;i:65;i:22;i:65;i:23;i:65;i:24;i:65;i:25;i:65;i:26;i:65;i:27;i:65;i:28;i:65;i:29;i:65;i:30;i:65;i:31;i:65;i:32;i:65;i:33;i:65;i:34;i:65;i:35;i:65;i:36;i:65;i:37;i:65;i:38;i:65;i:39;i:65;i:40;i:65;i:41;i:65;i:42;i:65;i:43;i:65;i:44;i:65;i:45;i:65;i:46;i:65;i:47;i:65;i:48;i:65;i:49;i:65;i:50;i:65;i:51;i:65;i:52;i:65;i:53;i:65;i:54;i:65;i:55;i:65;i:56;i:65;i:57;i:65;i:58;i:65;i:59;i:65;i:60;i:65;i:61;i:65;i:62;i:65;i:63;i:65;i:64;i:65;i:65;i:65;i:66;i:65;i:67;i:65;i:68;i:65;i:69;i:65;i:70;i:65;i:71;i:65;i:72;i:65;i:73;i:65;i:74;i:65;i:75;i:65;i:76;i:65;i:77;i:65;i:78;i:65;i:79;i:65;i:80;i:65;i:81;i:65;i:82;i:65;i:83;i:65;i:84;i:65;i:85;i:65;i:86;i:65;i:87;i:65;i:88;i:65;i:89;i:65;i:90;i:65;i:91;i:65;i:92;i:65;i:93;i:65;i:94;i:65;i:95;i:65;i:96;i:65;i:97;i:65;i:98;i:65;i:99;i:65;i:100;i:65;i:101;i:65;i:102;";
php > var_dump(unserialize($str));
PHP Notice:  unserialize(): Error at offset 1024 of 1024 bytes in php shell code on line 1
bool(false)
  • It should raise error in case given serialized array in incomplete.
  • Note: In most cases, it does throw error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions