Path: blob/main/crypto/krb5/src/tests/t_cve-2021-36222.py
34869 views
import socket1from k5test import *23realm = K5Realm()45# CVE-2021-36222 KDC null dereference on encrypted challenge preauth6# without FAST78s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)9a = (hostname, realm.portbase)1011m = ('6A81A0' '30819D' # [APPLICATION 10] SEQUENCE12'A103' '0201' '05' # [1] pvno = 513'A203' '0201' '0A' # [2] msg-type = 1014'A30E' '300C' # [3] padata = SEQUENCE OF15'300A' # SEQUENCE16'A104' '0202' '008A' # [1] padata-type = PA-ENCRYPTED-CHALLENGE17'A202' '0400' # [2] padata-value = ""18'A48180' '307E' # [4] req-body = SEQUENCE19'A007' '0305' '0000000000' # [0] kdc-options = 020'A120' '301E' # [1] cname = SEQUENCE21'A003' '0201' '01' # [0] name-type = NT-PRINCIPAL22'A117' '3015' # [1] name-string = SEQUENCE-OF23'1B06' '6B7262746774' # krbtgt24'1B0B' '4B5242544553542E434F4D'25# KRBTEST.COM26'A20D' '1B0B' '4B5242544553542E434F4D'27# [2] realm = KRBTEST.COM28'A320' '301E' # [3] sname = SEQUENCE29'A003' '0201' '01' # [0] name-type = NT-PRINCIPAL30'A117' '3015' # [1] name-string = SEQUENCE-OF31'1B06' '6B7262746774' # krbtgt32'1B0B' '4B5242544553542E434F4D'33# KRBTEST.COM34'A511' '180F' '31393934303631303036303331375A'35# [5] till = 19940610060317Z36'A703' '0201' '00' # [7] nonce = 037'A808' '3006' # [8] etype = SEQUENCE OF38'020112' '020111') # aes256-cts aes128-cts3940s.sendto(bytes.fromhex(m), a)4142# Make sure kinit still works.43realm.kinit(realm.user_princ, password('user'))4445success('CVE-2021-36222 regression test')464748