PHP até 7.0.5 ZIP Archive zend_string.h ZipArchive::getFromIndex Excesso de tampão
| CVSS Meta Pontuação Temporária | Preço atual do exploit (≈) | Nota de Interesse CTI |
|---|---|---|
| 9.3 | $0-$5k | 0.00 |
Sumário
Foi identificada uma vulnerabilidade classificada como crítico em PHP até 7.0.5. Afetado é a função ZipArchive::getFromIndex do arquivo zend_string.h do componente ZIP Archive Handler. A manipulação com uma entrada desconhecida leva a Excesso de tampão.
Esta vulnerabilidade é conhecida como CVE-2016-3078. É possível lançar o ataque remotamente. Além disso, existe um exploit disponível.
Recomenda-se a actualização do componente afectado.
Detalhes
Foi identificada uma vulnerabilidade classificada como crítico em PHP até 7.0.5. Afetado é a função ZipArchive::getFromIndex do arquivo zend_string.h do componente ZIP Archive Handler. A manipulação com uma entrada desconhecida leva a Excesso de tampão. Usar CWE para declarar o problema leva a CWE-190. A fraqueza foi publicada 28/04/2016 por Hans Jerry Illikainen (Site). O comunicado está disponível para download em openwall.com. A divulgação pública foi coordenada com o fornecedor.
Esta vulnerabilidade é conhecida como CVE-2016-3078. A atribuição do CVE ocorreu em 10/03/2016. É possível lançar o ataque remotamente. Detalhes técnicos estão disponíveis. A popularidade desta vulnerabilidade está acima da média. Além disso, existe um exploit disponível. O exploit foi divulgado ao público e pode ser utilizado. Atualmente, o preço atual de um exploit pode ser aproximadamente USD $0-$5k no momento. A razão para esta vulnerabilidade é esta parte do código:
static zend_always_inline zend_string *zend_string_alloc(size_t len, int persistent)
{
zend_string ret = (zend_string )pemalloc(ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); // (4)
...
ZSTR_LEN(ret) = len; // (5)
return ret;
} O comunicado destaca:The `size' argument to the `pemalloc' macro is aligned/adjusted in (4) whilst the original value of `len' is stored as the size of the allocated buffer in (5). No boundary checking is done in (4) and it may thus wrap, which would lead to a heap overflow during the invocation of `zip_fread()' in (3) as the `toread' argument is `ZSTR_LEN(buffer).
É declarado como prova de conceito. A exploração é partilhada para download em exploit-db.com. Como 0 dia, o preço estimado do subsolo foi de cerca de $25k-$100k. O código usado pelo exploit é:
$zip = new ZipArchive();
if ($zip->open($_FILES["file"]["tmp_name"]) !== TRUE) {
echo "cannot open archive\n";
} else {
for ($i = 0; $i < $zip->numFiles; $i++) {
$data = $zip->getFromIndex($i);
}
$zip->close(); O Nessus oferece um plugin com o ID 91320 para detecção de vulnerabilidades. Encontra-se atribuído à família Ubuntu Local Security Checks. O plugin está em execução no contexto do tipo l. O scanner de vulnerabilidade comercial Qualys é capaz de testar este problema com plugin 196483 (Ubuntu Security Notification for Php5, Php7.0 Vulnerabilities (USN-2984-1)).
A actualização para a versão 7.0.6 é capaz de abordar esta questão. Recomenda-se a actualização do componente afectado. Uma mitigação possível foi disponibilizada 4 semanas depois da divulgação da vulnerabilidade.
A vulnerabilidade está também documentada noutras bases de dados de vulnerabilidade: SecurityTracker (ID 1035701) e Tenable (91320).
Produto
Tipo
Nome
Versão
Licença
Site
- Produto: https://www.php.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vetor: 🔍VulDB Fiabilidade: 🔍
CVSSv3
VulDB Meta Pontuação Base: 9.8VulDB Meta Pontuação Temporária: 9.3
VulDB Pontuação Base: 9.8
VulDB Pontuação Temporária: 8.8
VulDB Vetor: 🔍
VulDB Fiabilidade: 🔍
NVD Pontuação Base: 9.8
NVD Vetor: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexidade | Autenticação | Confidencialidade | Integridade | Disponibilidade |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Pontuação Base: 🔍
VulDB Pontuação Temporária: 🔍
VulDB Fiabilidade: 🔍
NVD Pontuação Base: 🔍
Exploração
Classe: Excesso de tampãoCWE: CWE-190 / CWE-189
CAPEC: 🔍
ATT&CK: 🔍
Físico: Não
Local: Não
Remoto: Sim
Disponibilidade: 🔍
Acesso: Público
Estado: Prova de conceito
Autor: Hans Jerry Illikainen
Linguagem de programação: 🔍
Descarregar: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
Tendência de preços: 🔍
Estimativa de preço atual: 🔍
| 0-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoje | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Nessus ID: 91320
Nessus Nome: Ubuntu 12.04 LTS / 14.04 LTS / 15.10 / 16.04 LTS : php5, php7.0 vulnerabilities (USN-2984-1)
Nessus Ficheiro: 🔍
Nessus Risco: 🔍
Nessus Família: 🔍
Nessus Context: 🔍
OpenVAS ID: 803381
OpenVAS Nome: PHP Denial of Service Vulnerability - 01 - Aug16 (Linux)
OpenVAS Ficheiro: 🔍
OpenVAS Família: 🔍
Qualys ID: 🔍
Qualys Nome: 🔍
Exploit-DB: 🔍
Inteligência de ameaças
Interesse: 🔍Atores ativos: 🔍
Grupos APT ativos: 🔍
Contramedidas
Recomendação: AtualizaçãoEstado: 🔍
Tempo de resposta: 🔍
Tempo 0-dia: 🔍
Tempo de exposição: 🔍
Tempo de atraso de exploração: 🔍
Atualização: PHP 7.0.6
Patch: github.com
Linha do tempo
10/03/2016 🔍28/04/2016 🔍
28/04/2016 🔍
28/04/2016 🔍
02/05/2016 🔍
24/05/2016 🔍
25/05/2016 🔍
07/08/2016 🔍
11/06/2024 🔍
Fontes
Produto: php.orgAconselhamento: USN-2984-1
Pessoa: Hans Jerry Illikainen
Estado: Confirmado
Confirmação: 🔍
Coordenado: 🔍
CVE: CVE-2016-3078 (🔍)
GCVE (CVE): GCVE-0-2016-3078
GCVE (VulDB): GCVE-100-83075
SecurityTracker: 1035701
scip Labs: https://www.scip.ch/en/?labs.20161013
Veja também: 🔍
Entrada
Criado: 02/05/2016 08h53Atualizado: 11/06/2024 12h06
Ajustamentos: 02/05/2016 08h53 (82), 22/03/2019 14h03 (12), 27/07/2022 14h54 (5), 27/07/2022 14h55 (1), 11/06/2024 12h06 (15)
Completo: 🔍
Cache ID: 216::103
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Ainda sem comentários. Idiomas: pt + es + en.
Por favor, inicie sessão para comentar.