Closed CSkjerris closed 10 months ago
Hi @tvdijen do you plan to release a v4.6.12 for this fix ? I had to downgrade our dependency because of this issue. Thanks !
The issue was resolved in v4.6.11, but you have to clear your session store. Old existing sessions cannot be unserialized using the new unserialize-methods.
It seems like I misunderstood : we will stay in v4.6.11 and I'll clear the session store, it should be better like that. Thanks a lot !
When NameID is serialized as part of a SimpleSAML\Session, the part of the serialized string that represents the NameID objects will have "\0*\0" prepended infront of the attributes, which results in the deserialization of the object to turn bad.
Additionally, when using this with e.g. a DB session handler, the insert statement will end once it reads the "\0", so it will lose some data.
Example of bad string:
Notice that NameIdQualifier has "*" infront and the "\0"'s wasn't part of the copied out response from my debugger, however, the "\0"' explains why ti this the lenght of "NameQualifier" is 16 compared to 13.
I have a temp fix on my own application, where I added the following code to NameID: