Continuously sending A large number of SUBSCRIBE packet with random callback, for example, The following code is poc.In poc, callback is not only random, but also contains 0x10000 a(why 0x10000 a? To trigger memory resource exhaustion more quickly).
If you run the code, pupnp will constantly consume memory until the system killing it.
for the reason, I think there are two threads, one for receiving, and the other for dealing. The speed of the one which receiving SUBSCRIBE packets is fast, but the speed of the one which dealing with SUBSCRIBE packets are low. For transferring packets between two threads ,threre must be a queue , which constantly consuming memory, for storing packets.
For some reason, I can't upload pictures to show the effect of the attack.
hi~
Continuously sending A large number of SUBSCRIBE packet with random callback, for example, The following code is poc.In poc, callback is not only random, but also contains 0x10000 a(why 0x10000 a? To trigger memory resource exhaustion more quickly).
If you run the code, pupnp will constantly consume memory until the system killing it.
for the reason, I think there are two threads, one for receiving, and the other for dealing. The speed of the one which receiving SUBSCRIBE packets is fast, but the speed of the one which dealing with SUBSCRIBE packets are low. For transferring packets between two threads ,threre must be a queue , which constantly consuming memory, for storing packets.
For some reason, I can't upload pictures to show the effect of the attack.
If you have any question, ping me
Best regards.