]> source.dussan.org Git - tigervnc.git/commit
Limit max username/password size in SSecurityPlain. 440/head
authorMichal Srb <michalsrb@gmail.com>
Wed, 29 Mar 2017 14:05:45 +0000 (17:05 +0300)
committerMichal Srb <michalsrb@gmail.com>
Thu, 30 Mar 2017 00:25:04 +0000 (03:25 +0300)
commit62197c89e98be47a174074e4c7429c57767a4929
tree97fe733b664213cf6501b6e49d58f1a7d2093d0c
parent9801c5efcf8c1774d9c807ebd5d27ac7049ad993
Limit max username/password size in SSecurityPlain.

Setting the limit to 1024 which should be still more than enough.

Unlimited ulen and plen can cause various security problems:
  * Overflow in `is->checkNoWait(ulen + plen)` causing it to contine when there is not enough data and then wait forever.
  * Overflow in `new char[plen + 1]` that would allocate zero sized array which succeeds but returns pointer that should not be written into.
  * Allocation failure in `new char[plen + 1]` from trying to allocate too much and crashing the whole server.

All those issues can be triggered by a client before authentication.
common/rfb/SSecurityPlain.cxx
common/rfb/SSecurityPlain.h