Linux Kernel 3.10.28/3.12.9/3.13.1 net/compat.c compat_sys_recvmmsg élévation de privilèges

| CVSS Score méta-temporaire | Prix actuel de l'exploit (≈) | Score d'intérêt CTI |
|---|---|---|
| 7.0 | $0-$5k | 0.00 |
Résumé
Une vulnérabilité classée critique a été trouvée dans Linux Kernel 3.10.28/3.12.9/3.13.1. Affecté est la fonction compat_sys_recvmmsg du fichier net/compat.c. L’exploitation entraîne élévation de privilèges.
Cette vulnérabilité est identifiée comme CVE-2014-0038. L'attaque requiert une approche locale. De plus, un exploit est disponible.
Il est préconisé de mettre en place un correctif afin de remédier à ce problème.
Détails
Une vulnérabilité a été trouvé dans Linux Kernel 3.10.28/3.12.9/3.13.1 (Operating System) et classée critique. Affecté par cette vulnérabilité est la fonction compat_sys_recvmmsg du fichier net/compat.c. A cause de la manipulation avec une valeur d'entrée inconnue mène à une vulnérabilité de classe élévation de privilèges.
Le bug a été découvert sur 31/01/2014. La vulnerabilité a été publié en 28/01/2014 par pageexec avec le numéro d'identification Bug 338594 avec mailinglist post (oss-sec) (confirmé). La notice d'information est disponible en téléchargement sur seclists.org Cette vulnérabilité a été nommée CVE-2014-0038. La vulnerabilité est relativement populaire, et bien qu'elle soit très complexe. L'attaque doit être locale. Une seule session d'authentification est nécéssaire pour l'exploitation. Des details techniques et aussi un public exploit sont connus. La raison de cette vulnérabilité est cette partie du code:
asmlinkage long compat_sys_recvmmsg(int fd,
struct compat_mmsghdr __user *mmsg,
unsigned int vlen, unsigned int flags,
struct compat_timespec __user *timeout)
{
int datagrams;
struct timespec ktspec;
if (flags & MSG_CMSG_COMPAT)
return -EINVAL;
if (COMPAT_USE_64BIT_TIME)
return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
flags | MSG_CMSG_COMPAT,
(struct timespec *) timeout);Un exploit a été developpé par pageexec en ANSI C et a été publié immédiatement après la notice d'information. L'exploit est disponible au téléchargment sur exploit-db.com. Il est déclaré comme hautement fonctionnel. Le scanner de vulnérabilités Nessus propose un module ID 72591 (Slackware 14.1 : kernel (SSA:2014-050-03)), lequel aide à déterminer l'existence d'une faille dans l'environnement-cible.
En appliquant un correctif il est possible d'éliminer le problème. Le correctif est disponible au téléchargement sur seclists.org. Une solution envisageable a été publiée 4 semaines après la publication de la vulnérabilité. La vulnérabilité sera abordée avec les lignes de code suivantes:
--- a/net/compat.c 2014-01-20 12:36:54.372997752 +0100
+++ b/net/compat.c 2014-01-28 02:06:59.265506171 +0100
@@ -780,22 +780,25 @@
if (flags & MSG_CMSG_COMPAT)
return -EINVAL;
- if (COMPAT_USE_64BIT_TIME)
- return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
- flags | MSG_CMSG_COMPAT,
- (struct timespec *) timeout);
-
if (timeout == NULL)
return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
flags | MSG_CMSG_COMPAT, NULL);
- if (get_compat_timespec(&ktspec, timeout))
+ if (COMPAT_USE_64BIT_TIME) {
+ if (copy_from_user(&ktspec, timeout, sizeof(ktspec)))
+ return -EFAULT;
+ } else if (get_compat_timespec(&ktspec, timeout))
return -EFAULT;
datagrams = __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen,
flags | MSG_CMSG_COMPAT, &ktspec);
- if (datagrams > 0 && put_compat_timespec(&ktspec, timeout))
- datagrams = -EFAULT;
+ if (datagrams > 0) {
+ if (COMPAT_USE_64BIT_TIME) {
+ if (copy_to_user(timeout, &ktspec, sizeof(ktspec)))
+ datagrams = -EFAULT;
+ } else if (put_compat_timespec(&ktspec, timeout))
+ datagrams = -EFAULT;
+ }
return datagrams;
}La vulnérabilité est aussi documentée dans les base de données Exploit-DB (31305), Tenable (72591), SecurityFocus (BID 64781†), OSVDB (102749†) et Secunia (SA56549†). Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Produit
Taper
Fournisseur
Nom
Version
Licence
Site web
- Fournisseur: https://www.kernel.org/
CPE 2.3
CPE 2.2
Vidéo

CVSSv4
VulDB Vecteur: 🔍VulDB Fiabilité: 🔍
CVSSv3
VulDB Score méta-base: 7.8VulDB Score méta-temporaire: 7.0
VulDB Note de base: 7.8
VulDB Note temporaire: 7.0
VulDB Vecteur: 🔍
VulDB Fiabilité: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vecteur | Complexité | Authentification | Confidentialité | Intégrité | Disponibilité |
|---|---|---|---|---|---|
| Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
| Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
| Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
VulDB Note de base: 🔍
VulDB Note temporaire: 🔍
VulDB Fiabilité: 🔍
NVD Note de base: 🔍
Exploitation
Classe: élévation de privilègesCWE: CWE-20
CAPEC: 🔍
ATT&CK: 🔍
Physique: Partiellement
Local: Oui
Remote: Non
Disponibilité: 🔍
Accès: Public
Statut: Hautement fonctionnel
Auteur: pageexec
Langage de programmation: 🔍
Télécharger: 🔍
EPSS Score: 🔍
EPSS Percentile: 🔍
Prédiction de prix: 🔍
Estimation actuelle des prix: 🔍
| 0-Day | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
|---|---|---|---|---|
| Aujourd'hui | Déverrouiller | Déverrouiller | Déverrouiller | Déverrouiller |
Nessus ID: 72591
Nessus Nom: Slackware 14.1 : kernel (SSA:2014-050-03)
Nessus Fichier: 🔍
Nessus Risque: 🔍
Nessus Famille: 🔍
Nessus Context: 🔍
Nessus Port: 🔍
OpenVAS ID: 850566
OpenVAS Nom: SuSE Update for kernel openSUSE-SU-2014:0204-1 (kernel)
OpenVAS Fichier: 🔍
OpenVAS Famille: 🔍
Qualys ID: 🔍
Qualys Nom: 🔍
MetaSploit ID: recvmmsg_priv_esc.rb
MetaSploit Nom: Linux Kernel recvmmsg Privilege Escalation
MetaSploit Fichier: 🔍
Exploit-DB: 🔍
Renseignements sur les menaces
Intérêt: 🔍Acteurs actifs: 🔍
Groupes APT actifs: 🔍
Contre-mesures
Recommandé: CorrectifStatut: 🔍
Temps de réaction: 🔍
Heure 0 jour: 🔍
Temps d'exposition: 🔍
Délai d'exploitation: 🔍
Correctif: seclists.org
Chronologie
03/12/2013 🔍28/12/2013 🔍
28/01/2014 🔍
28/01/2014 🔍
31/01/2014 🔍
03/02/2014 🔍
06/02/2014 🔍
20/02/2014 🔍
20/02/2014 🔍
22/11/2024 🔍
Sources
Fournisseur: kernel.orgBulletin: Bug 338594
Chercheur: pageexec
Statut: Confirmé
Confirmation: 🔍
CVE: CVE-2014-0038 (🔍)
GCVE (CVE): GCVE-0-2014-0038
GCVE (VulDB): GCVE-100-12137
OVAL: 🔍
SecurityFocus: 64781 - Linux Kernel 'fpu-internal.h' Local Denial of Service Vulnerability
Secunia: 56549
OSVDB: 102749 - CVE-2014-0038 - Linux - Privilege Escalation Issue
scip Labs: https://www.scip.ch/en/?labs.20161013
Voir aussi: 🔍
Entrée
Créé: 03/02/2014 08:57Mise à jour: 22/11/2024 16:32
Changements: 03/02/2014 08:57 (92), 29/07/2019 20:37 (6), 22/11/2024 16:32 (19)
Complet: 🔍
Cache ID: 216:759:103
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.
Aucun commentaire pour l'instant. Langues: fr + it + en.
Veuillez vous connecter pour commenter.