Vulnerabilities > CVE-2004-0435 - Buffer Cache Implementation vulnerability in FreeBSD Msync(2) System Call

047910
CVSS 3.6 - LOW
Attack vector
LOCAL
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
NONE
Integrity impact
PARTIAL
Availability impact
PARTIAL
local
low complexity
freebsd
nessus

Summary

Certain "programming errors" in the msync system call for FreeBSD 5.2.1 and earlier, and 4.10 and earlier, do not properly handle the MS_INVALIDATE operation, which leads to cache consistency problems that allow a local user to prevent certain changes to files from being committed to disk.

Nessus

NASL familyFreeBSD Local Security Checks
NASL idFREEBSD_BUFFER_CACHE.NASL
descriptionThe remote host is running a version of FreeBSD which contains a programming error in the msync(2) system call which may let a local user with read access to a given file to forbid any change to this file to be written to disk.
last seen2020-06-01
modified2020-06-02
plugin id12527
published2004-07-06
reporterThis script is Copyright (C) 2004-2010 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/12527
titleFreeBSD : SA-04:11.msync
code
#
# (C) Tenable Network Security, Inc.
#
#

if ( ! defined_func("bn_random") ) exit(0);

include("compat.inc");

if(description)
{
 script_id(12527);
 script_bugtraq_id(10416);
 script_version ("$Revision: 1.11 $");
 script_cve_id("CVE-2004-0435");
 name["english"] = "FreeBSD : SA-04:11.msync";
 
 script_name(english:name["english"]);
 
 script_set_attribute(attribute:"synopsis", value:
"The remote device is missing a vendor-supplied security patch" );
 script_set_attribute(attribute:"description", value:
"The remote host is running a version of FreeBSD which contains a
programming error in the msync(2) system call which may let a local user with
read access to a given file to forbid any change to this file to be written
to disk." );
 script_set_attribute(attribute:"solution", value:
"http://www.vuxml.org/freebsd/1db1ed59-af07-11d8-acb9-000d610a3b12.html" );
 script_set_cvss_base_vector("CVSS2#AV:L/AC:L/Au:N/C:N/I:P/A:P");
 script_set_cvss_temporal_vector("CVSS2#E:U/RL:OF/RC:C");
 script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
 script_set_attribute(attribute:"exploit_available", value:"false");



 script_set_attribute(attribute:"plugin_publication_date", value: "2004/07/06");
 script_cvs_date("$Date: 2010/10/06 01:41:53 $");
 script_end_attributes();

 
 summary["english"] = "Check for the version of FreeBSD";
 script_summary(english:summary["english"]);
 
 script_category(ACT_GATHER_INFO);
 
 script_copyright(english:"This script is Copyright (C) 2004-2010 Tenable Network Security, Inc.");
 family["english"] = "FreeBSD Local Security Checks";
 script_family(english:family["english"]);
 
 script_dependencies("ssh_get_info.nasl");
 script_require_keys("Host/FreeBSD/pkg_info");
 exit(0);
}



include("freebsd_package.inc");

port = 0;

pkgs = get_kb_item("Host/FreeBSD/pkg_info");

package = get_kb_item("Host/FreeBSD/release");


if ( egrep(pattern:"FreeBSD-5\.", string:package) )
{
 if ( pkg_cmp(pkg:package, reference:"FreeBSD-5.2_8") < 0 )
 {
  security_note(port);
  exit(0);
 }
}


if ( egrep(pattern:"FreeBSD-4\.9", string:package) )
{
 if ( pkg_cmp(pkg:package, reference:"FreeBSD-4.9_9") < 0 )
 {
  security_note(port);
  exit(0);
 }
}

if ( egrep(pattern:"FreeBSD-4\.[0-8]([^0-9]|$)", string:package) )
{
 if ( pkg_cmp(pkg:package, reference:"FreeBSD-4.8_22") < 0 )
 {
  security_note(port);
  exit(0);
 }
}