![]() ![]() It would require a repetitive bulk attack with the hope that a GC compaction would occur at precisely the right moment during one of the requests. This should be very difficult for an attacker to trigger intentionally. While the invalid references are never dereferenced directly, if a GC compaction were to occur during the brief window when they are on the stack then it could invalidate the buffer range check and allow other operations to overrun the buffer. ![]() These are at locations in the code being used for buffer range checks. There are several places in 1.1.0 where byte references very briefly point outside the valid areas of buffers. If they point outside this area, the buffer itself may be moved while the byte reference stays the same. NET garbage collector can only update these byte references if they still point within the buffer or to a point one byte past the end of the buffer. However, when the garbage collector performs compaction and rearranges memory, it must update any byte references on the stack to refer to the updated location. This change generally improves performance and reduces workload on the garbage collector. In this release, much of the code was rewritten to use byte references rather than pointers to pinned buffers. This is a buffer overrun vulnerability that can affect any user of Snappier 1.1.0. Snappier is a high performance C# implementation of the Snappy compression algorithm. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |