❌

Reading view

npm-sentinel: 21 malicious npm packages in 24h including LLM API MITM, encrypted skill backdoors, and Redis weaponization via postinstall

Built an automated npm package scanner that uses heuristic scoring + LLM analysis to flag malicious packages in real time. Ran it for 24 hours against ~2000 recent npm registry changes and found 21 malicious packages across 11 campaigns.

Four novel attack vectors documented:

  1. LLM API MITM (T1557): makecoder@2.0.72 overwrites ~/.claude/ via postinstall, reconfigures Claude Code client to proxy all API calls through attacker server. Application-layer MITM on AI assistant conversations.

  2. Encrypted skill distribution (T1027, T1105): skillvault@0.1.14 fetches encrypted payloads from private API, decrypts locally, installs as persistent Claude Code skills. Server-side swappable without npm update.

  3. AI agent as RAT (T1219, T1036.005): keystonewm/tsunami-code ship functional coding assistant CLIs routing all interactions through attacker's ngrok tunnel. Exploits AI tool trust model where users grant full filesystem access voluntarily.

  4. Redis CONFIG SET + raw disk read via postinstall (T1190, T1006): 6 fake Strapi plugins use Redis to write shell payloads to 7 directories, dd if=/dev/sda1 to extract credentials bypassing file permissions, Docker overlay traversal for container escape.

All IOCs, decoded payloads, and MITRE mappings on the site. None of the 21 packages were flagged by any public scanner at time of discovery.

submitted by /u/Busy-Increase-6144
[link] [comments]
  •  

Using undocumented AWS CodeBuild endpoints to extract privileged tokens from AWS CodeConnections allowing lateral movement and privilege escalation through an organisation's codebase

My write up around a research project I've been doing in my spare time around investigating the security of AWS CodeConnections. This post covers the techniques I used to hook a CodeBuild job to monitor the requests the CodeBuild bootstrapping makes before user code is run. Using this information I then also show the endpoints I found that can be used to retrieve the raw GitHub App token or BitBucket JWT App token CodeConnections uses which tends to be very privileged in a lot of environments, granting far more access than to just the single repository where the CodeBuild job is being run.

submitted by /u/thomaspreece
[link] [comments]
  •  

If you're running OpenClaw, you probably got hacked in the last week

CVE-2026-33579 is actively exploitable and hits hard.

What happened: The /pair approve command doesn't check who is approving. So someone with basic pairing access (the lowest permission tier) can approve themselves for admin. That's it. Full instance takeover, no secondary exploit needed. CVSS 8.6 HIGH.

Why this matters right now:

  • Patch dropped March 29, NVD listing March 31. Two-day window for the vulns to spread before anyone saw it on NVD
  • 135k+ OpenClaw instances are publicly exposed
  • 63% of those run zero authentication. Meaning the "low privilege required" in the CVE = literally anyone on the internet can request pairing access and start the exploit chain

The attack is trivial:

  1. Connect to an unauthenticated OpenClaw instance β†’ get pairing access (no credentials needed)
  2. Register a fake device asking for operator.admin scope
  3. Approve your own request with /pair approve [request-id]
  4. System grants admin because it never checks if you are authorized to grant admin
  5. You now control the entire instance β€” all data, all connected services, all credentials

Takes maybe 30 seconds once you know the gap exists.

What you need to do:

  1. Check your version: openclaw --version. If it's anything before 2026.3.28, stop what you're doing
  2. Upgrade (one command: npm install openclaw@2026.3.28)
  3. Run forensics if you've been running vulnerable versions:
    • List admin devices: openclaw devices list --format json and look for admins approved by pairing-only users
    • Check audit logs for /pair approve events in the last week
    • If registration and approval timestamps are seconds apart and approver isn't a known admin = you got hit

Let me know if you're interested, happy to share the link.

submitted by /u/NotFunnyVipul
[link] [comments]
  •  

Oklahoma Tax Breach and FBI Impersonation Scam: This Week in Scams

Suspects wanted by the FBI

A tax system breach in Oklahoma is puttingΒ highly sensitiveΒ personal information at risk. And unfortunately, this is exactly the kind of situation scammers love to exploit.Β 

HackersΒ reportedlyΒ accessedΒ W-2 and 1099 files through Oklahoma’s online tax portal, according to state officials, exposing the kind of information that can open the door to tax fraud, identity theft, and highly targeted phishing attempts.Β 

Before the follow-upΒ scamsΒ start rolling in, this is the kind of moment where layered protection matters.Β McAfee+ AdvancedΒ includes identity monitoring and dataΒ cleansupΒ thatΒ can help alert you if your personal information starts circulatingΒ where itΒ shouldn’t, and Scam Detector can flag suspicious messages if scammers try to use this breach as a hook.Β 

What Happened in OklahomaΒ 

According toΒ a statement byΒ the Oklahoma Tax CommissionΒ andΒ reported by KOCO News 5, a local ABC affiliate, suspicious activity inside the state’s Oklahoma Taxpayer Access Point system was identified in December 2025. The agency says impacted individuals have been notified directly by mail, and complimentary credit monitoring and fraud assistance are being offered.Β 

When W-2s, 1099s, Social Security numbers, and tax-related records are exposed, scammers can use that information to:Β 

  • File fraudulent tax returns Β 
  • Try to open new accounts Β 
  • Build phishing emails or texts that feel unusually real Β 

Either way, the goal is the same: useΒ real informationΒ to make the nextΒ scamΒ more believable.Β 

Red Flags of a Scam After a Breach Like ThisΒ 

The breach itself is real. But what often follows is a second wave ofΒ scamsΒ pretending to help.Β 

Watch For:Β 

  • Emails or texts about your β€œtax account” that create urgency Β 
  • Messages asking you to verify personal information Β 
  • Fake alerts about refunds, filings, or suspicious activity Β 
  • Links telling you to log in and β€œsecure” your account Β 

That’sΒ where people can get hit twice: once by the breach, and again by theΒ scamΒ that follows it.Β 

WhatΒ To Do IfΒ You’reΒ ImpactedΒ 

First,Β don’tΒ panic. Then:Β 

  • Take advantage of any free credit monitoring or fraud assistance being offeredΒ Β 
  • Monitor your bank accounts, tax records, and credit reports closely Β 
  • Consider placing a fraud alert or credit freeze if needed Β 
  • Be extra careful with any message referencing taxes, refunds, or account accessΒ 
  • Go directly to official sites instead of clicking links in emails or texts Β 

And that, my friends, isΒ scamΒ number one in this week’sΒ This Week in Scams.Β 

Let’sΒ get into what else is on our radar.Β 

The FBI Impersonation Scam Showing Up Across the U.S.Β 

Scammers pretending to be federal agents are making the rounds across the country, and this one is built to make people panic fast.Β 

Field offices, including ChicagoΒ andΒ Houston,Β are warning the public about fraudsters posing as FBI agents in calls, texts, and emails. In some cases, the scammers claimΒ you’reΒ connected to an investigation. In others, they sayΒ you’reΒ a victim of fraud and need to actΒ immediatelyΒ to protect yourself.Β 

Sometimes they do not stop there. They may also pretend to be bank employees working alongside the FBI, all to make the story feel more convincing and get access to your money or personal information.Β 

Suspects wanted by the FBI
The FBI has shared images of these suspects pretending to be agents. If you are contacted by these officials, report it to the FBI.

Why This Scam Works

ThisΒ scamΒ plays on the same pressure tacticsΒ we’veΒ seenΒ over and over again: authority, urgency, and confusion.Β 

If someone claims to be a federal agent, many people freeze up and assume they need to cooperateΒ immediately.Β That’sΒ exactly what scammers are counting on.Β 

The FBI has been clear about this: federal law enforcement will not ask you for money or sensitive personal information over the phone, by text, or by email.Β 

The Red Flags in This Message

  • Unsolicited outreach from someone claiming to be federal law enforcement Β 
  • Pressure to act immediately Β 
  • Requests for money, gift cards, prepaid cards, or personal information Β 
  • Instructions to keep the conversation secret Β 
  • Stories involving a bank β€œworking with” the FBI Β 

If it feels dramatic, high-pressure, and just a little off, trust that instinct.Β 

What To Do if You Get One Of These Messages

  • Do not respond Β 
  • Do not send money or share personal information Β 
  • Contact the agency directly using publicly listed contact information Β 
  • Save the message for your records Β 
  • Report it to the FBI: 1-800-CALL-FBI (225-5324), or online atΒ tips.fbi.gov.

This is also exactly the kind of messageΒ McAfee’s Scam DetectorΒ is built to flag before you get pulled in.Β 

How McAfee Helps You Stay Ahead of Scams and BreachesΒ 

McAfee+ AdvancedΒ givesΒ youΒ multiple layers working together so you are not left figuring it out after the damage is done:Β 

  • Identity MonitoringΒ alerts you if your personal info shows up where it should not, so you can act fast
  • Personal Data CleanupΒ helps remove your information from data broker sites, making you harder to target in the first place
  • Scam DetectorΒ flags suspicious texts, emails, links, and even deepfake videos before you engage
  • Safe BrowsingΒ helps block risky sites if you do click
  • Device SecurityΒ helps detect malicious apps or downloads
  • Secure VPNΒ keeps your data private, especially on public Wi-FiΒ Β 

This kind of layered protection is critical in cases like ghost studentΒ scams, where the first sign of fraud often comes after financial damage has already happened.Β 

Safety tips to carry into next weekΒ 

  • Be extra cautious after any real breach makes headlines Β 
  • Do not trust unsolicited messages just because they reference real institutions Β 
  • Never send money to someone claiming to be law enforcement Β 
  • Go directly to official websites instead of clicking links Β 
  • Use tools that flag suspicious messages in real time so you do not have to guessΒ 

The reality is,Β scamsΒ are getting better at looking official.Β 

You should not have to be an expert to spot them.Β That’sΒ why McAfee is here to help. We’re Safer Together.

We’llΒ be back next week with moreΒ scamsΒ making headlines.Β 

The post Oklahoma Tax Breach and FBI Impersonation Scam: This Week in Scams appeared first on McAfee Blog.

  •  

Why Was My Tax Refund Intercepted? The β€œGhost Student” Scam Explained

Rob J., 31, an internal auditor in California, thought he was doing everything right this tax season. He filed his return as usual, even early, and expected a state refund just short of $400.Β 

Instead, he got a letter saying the state had taken it.Β 

The notice from the California Franchise Tax Board said his refund had been intercepted to pay a debt owed to a local community college.Β 

There was just one problem: Rob had never attended that school.Β 

β€œHow could the state be taking my tax refund to pay a debt to a community college I’ve never attended?” he told us at McAfee. β€œI immediately knew something was wrong.” 

β€œI started researching and came across the term β€˜ghostΒ student,’ andΒ that’sΒ when it clicked. Someone had used my identity toΒ enrollΒ in a college like they were me.” 

How McAfee+ Advanced Helps Protect YouΒ fromΒ Identity TheftΒ Β 

ScamsΒ like this do not start with a suspicious text or email. They start with your data being exposed somewhere you cannot see.Β 

That is why protectionΒ has toΒ go beyond one moment and cover the full lifecycle of identity theft.Β 

McAfee+ AdvancedΒ givesΒ youΒ multiple layers working together so you are not left figuring it out after the damage is done:Β 

  • Identity MonitoringΒ alerts you if your personal info shows up where it should not, so you can act fast
  • Personal Data CleanupΒ helps remove your information from data broker sites, making you harder to target in the first place
  • Scam DetectorΒ flags suspicious texts, emails, links, and even deepfake videos before you engage
  • Safe BrowsingΒ helps block risky sites if you do click
  • Device SecurityΒ helps detect malicious apps or downloads
  • Secure VPNΒ keeps your data private, especially on public Wi-FiΒ Β 

This kind of layered protection is critical in cases like ghost studentΒ scams, where the first sign of fraud often comes after financial damage has already happened.Β 

What IsΒ aΒ Ghost Student Scam?Β 

A ghost studentΒ scamΒ is a form of identity theft whereΒ someone uses your stolen personal information, often your Social Security number, toΒ enrollΒ in a college or university under your name.Β 

The scammer is not trying to attend school. They are trying to use your identity to access financial aid, create accounts, or generate funds tied to a real person.Β 

In many cases, the victim has no idea anything happened until the consequences show up later, such as a tax refund being taken, a debt appearing, or a loan being opened in their name.Β 

That is exactly what happened to Rob.Β 

β€œI started researching and came across the term β€˜ghost student,’ and that’s when it clicked,” he said. β€œSomeone had used my identity toΒ enrollΒ in a college like they were me.”  

How Ghost Student Scams HappenΒ 

TheseΒ scamsΒ typically follow a predictable pattern, even if the victim does not see it happening in real time:Β 

StageΒ  What happensΒ  Why it mattersΒ 
Data exposureΒ  Your personal information is leaked in a data breach or collected from data broker sitesΒ  Scammers get the core details they need to impersonate youΒ 
Identity misuseΒ  Your information is used to apply to colleges or financial aid programsΒ  TheΒ scamΒ is tied to your real identity, not a fake oneΒ 
EnrollmentΒ activityΒ  Fake students mayΒ enrollΒ just long enough to access funds or create accountsΒ  This helps scammers avoid early detectionΒ 
Financial impactΒ  Debts, balances, or aid obligations are created in your nameΒ  You become financially responsible on paperΒ 
DiscoveryΒ  You find out later through a notice, refund interception, or account alertΒ  By this point, damage has already been doneΒ 

In Rob’s case, the starting point was a data breach the year before. His Social Security number had been exposed, but he had not frozen his credit.Β 

Someone used that information toΒ enrollΒ at Pasadena City College. When the balance went unpaid, the state redirected his tax refund to cover it.Β 

β€œDespite BeingΒ theΒ Victim, I’mΒ TryingΒ toΒ Prove My Identity” 

Once Rob realized what happened, he moved quickly. He froze his credit, set up identity monitoring, filed a police report, and began working with the college to prove he was not the student.Β 

He says the process has been slow and frustrating.Β 

β€œI’veΒ spent hours on the phone trying to fix this… I’mΒ exhausted,” he said.Β β€œDespite being theΒ victimΒ I am the one dealing with the consequences and trying to prove my identity to the same institution that let a fake me register.”  

When he contacted campus police, he learned something else: β€œthis has been happening to other people too.” 

Why Ghost Student Scams Are IncreasingΒ 

Ghost studentΒ scamsΒ are part of a broader shift in how identity theft works.Β 

Instead of quick-hit fraud like a stolen credit card, scammers are using real identities to create more complex, longer-term opportunities for financial gain.Β 

In higher education, that can include:Β 

  • Enrolling fake students using stolen identitiesΒ Β 
  • Accessing financial aidΒ Β 
  • Holding seats in classes long enough to collect fundsΒ Β 

This trend has already affected thousands of suspected cases across education systems and continues to grow as scammers scale their tacticsΒ Β 

What to Do If Your Identity Is Used in a Ghost Student ScamΒ 

If something like this happens, speed matters:Β 

  • Freeze your credit with all three bureausΒ Β 
  • Check your FAFSA and student loan recordsΒ Β 
  • Contact the school and dispute theΒ enrollmentΒ Β 
  • File a police reportΒ Β 
  • Set up identity monitoring and alertsΒ Β 
  • Remove your personal information from data broker sitesΒ Β 

These steps helpΒ containΒ the damage, but they are reactive. The goal is to catch exposure earlier.Β McAfee+ Advanced can help you with freezing your credit, ongoing identity monitoring, and data removal from the dark web.Β 

How Rob’s Story Ends: β€˜I’m Waiting for the Other Shoe to Drop’ 

Rob has confirmed there are no federal loans in his name, but the situation is not fully resolved.Β 

β€œI still feel like I’m waiting for the other shoe to drop,” he said.Β Β 

That uncertainty is part of what makes identity theft so difficult. You are often reacting to something that started months or even years earlier.Β Rob said he currently has an outstanding police report and isΒ in the process of gettingΒ his refund reclaimed.Β Β 

How to Stay Ahead of Identity Theft Like ThisΒ 

Ghost studentΒ scamsΒ work because theyΒ operateΒ quietly, using real data in systems most people are not actively watching.Β That is where ongoing protection matters.Β 

McAfee+ AdvancedΒ helps close those gaps by:Β 

  • Alerting you earlyΒ when your personal data appears on the dark web or in risky environmentsΒ Β 
  • Reducing your exposureΒ by removing your data from broker sites that scammers rely onΒ Β 
  • BlockingΒ scamΒ entry pointsΒ across texts, emails, links, and deepfakesΒ Β 
  • Protecting your devices and connectionsΒ so attackers have fewer ways inΒ Β 

Because the goal is not just to respond to identity theft, it’s to catch the signals early enough that someone cannot become a β€œstudent” in your name in the first place.Β 

The post Why Was My Tax Refund Intercepted? The β€œGhost Student” Scam Explained appeared first on McAfee Blog.

  •  

A threat actor who goes by the name "Mr. Raccoon" has claimed to hack Adobe support via 3rd party Indian BPO firm

A massive data breach (allegedly) has occurred at Adobe. Carried out by a threat actor calling themselves "Mr. Raccoon", the claims are that over 13M support ticket details have been leaked along with details of over 15,000 employees. Additionally, they have access to their microsoft SharePoint instance and also to make matters worse, Adobe's HackerOne account. Adobe is yet to comment on this matter.

submitted by /u/raptorhunter22
[link] [comments]
  •  

Detailed analysis of a sophisticated firefox extension malware found in the wild using browser-xpi-malware-scanner.py

I've written a scanner for XPI browser extension files which analyzes a browser extension for malicious content. It will print everything that is suspicious or could be used for something malicious so that you will know if and where you can begin with your malware analysis. Example output of a Firefox malware extension (which is live on firefox extensions store)

browser-xpi-malware-scanner.py - Python script for XPI malware scanning on github.com

I have written the above script, and I ran it against 15~ random extensions from the store with less than 10K downloads, and it didn't take me more than 10 minutes to find the malware extension above.

I've also completely reverse engineered the extension to find out exactly what it does, and written an article about it where I walk you through the code and exploitation process steb-by-step, showing all the techniques used to hide from the verification processes in the extension store, breaking out of the sandbox and stealing credentials with a full Command and control server controlling it.

The malware code is very sophisticated. The payload never touches the DOM. It never appears in network DevTools as a suspicious request. It is stored in extension localStorage where casual inspection won't find it. But my scanner will catch it.

Techniques used:

  • Steganographic Payload in PNG Icon
  • Unicode Low-Byte Encoding Trick
  • Decoded Payload: The C2 String Table
  • 72-Hour Sleeper with Random Sampling
  • C2 Beacon via Another PNG File
  • Dynamic `declarativeNetRequest` Rule Injection
  • Affiliate Commission Hijacking
  • Content Script Privilege Escalation Bridge
  • Arbitrary URL Redirect on Any Domain
  • CSP Erasure

Full deep dive analysis with code examples in link above. The extension discussed is live as of today.

Deep dive of malware found on firefox extension store - multiple evasion techniques used including steganography, sleep before C2 beacon and content script privilege escalation. browser-xpi-malware-scanner.py - Python script for XPI malware scanning on github.com

I hope you enjoy it!

Here is the output of the python script, which helps us analyze the code.

```bash browser-xpi-malware-scanner.py ../malware-extensions/YTMP4\ -\ Download\ YouTube\ Videos\ to\ MP4.xpi -v [i] Analyzing 1 target(s) with minimum severity 'INFO' [+] Found 1 XPI(s) to analyze [i] Analyzing XPI: ../malware-extensions/YTMP4 - Download YouTube Videos to MP4.xpi Analyzing entry: setting.html Analyzing entry: manifest.json Analyzing entry: adpoint.json Analyzing entry: index.html Analyzing entry: _locales/en/messages.json Analyzing entry: icon/icon_gray.png Analyzing entry: icon/loading.webp Analyzing entry: icon/logo.png Analyzing entry: icon/icon64.png Analyzing entry: icon/loading.gif Analyzing entry: css/index.css Analyzing entry: css/iconfont.ttf Analyzing entry: css/iconfont.css Analyzing entry: js/index.js Analyzing entry: js/setting.js Analyzing entry: js/y2meta-uk.com.js Analyzing entry: js/content.js Analyzing entry: js/bg.js Analyzing entry: js/jquery-3.4.1.min.js Analyzing entry: js/snapany.com.js Analyzing entry: js/ytmp4.co.za.js Analyzing entry: META-INF/cose.manifest Analyzing entry: META-INF/cose.sig Analyzing entry: META-INF/manifest.mf Analyzing entry: META-INF/mozilla.sf Analyzing entry: META-INF/mozilla.rsa

════════════════════════════════════════════════════════════════════════ XPI ANALYZER β€” YTMP4 - Download YouTube Videos to MP4.xpi ════════════════════════════════════════════════════════════════════════ Extension Name: YTMP4 - Download YouTube Videos to MP4 Extension UUID: 1efab3c2-06ac-4040-975d-e006baac07ce@ytmp4 Overall verdict: CRITICAL RISK

────────────────────────────────────────────────────────────────────── MANIFEST.JSON: ────────────────────────────────────────────────────────────────────── { "manifestversion": 3, "name": "MSG_extName", "description": "MSG_description_", "version": "1.3.4", "default_locale": "en", "permissions": [ "tabs", "storage", "declarativeNetRequest", "downloads" ], "host_permissions": [ "<all_urls>" ], "action": { "default_icon": { "19": "icon/icon_gray.png", "38": "icon/icon_gray.png" }, "default_title": "YTMP4" }, "background": { "scripts": [ "js/bg.js" ] }, "content_scripts": [ { "js": [ "js/content.js" ], "matches": [ "https:///", "http:///" ], "all_frames": true, "run_at": "document_end" }, { "js": [ "js/jquery-3.4.1.min.js", "js/ytmp4.co.za.js" ], "matches": [ "https://.ytmp4.co.za/" ], "all_frames": true, "run_at": "document_start" }, { "js": [ "js/jquery-3.4.1.min.js", "js/y2meta-uk.com.js" ], "matches": [ "https://.y2meta-uk.com/" ], "all_frames": true, "run_at": "document_start" }, { "js": [ "js/jquery-3.4.1.min.js", "js/snapany.com.js" ], "matches": [ "https://.snapany.com/" ], "all_frames": true, "run_at": "document_start" } ], "sidebar_action": { "default_panel": "index.html", "default_icon": "icon/icon64.png" }, "icons": { "128": "icon/icon64.png" }, "declarative_net_request": { "rule_resources": [ { "id": "adblocker01", "enabled": true, "path": "adpoint.json" } ] }, "browser_specific_settings": { "gecko": { "id": "1efab3c2-06ac-4040-975d-e006baac07ce@ytmp4" } } } ──────────────────────────────────────────────────────────────────────

Findings: 1 CRITICAL 22 HIGH 17 MEDIUM 1 INFO

── CRITICAL ────────────────────────────────────────────────────────── [CRITICAL] [PNG_APPENDED] icon/logo.png: 1902 bytes appended after PNG IEND (entropy=5.63) β€” classic stego carrier CODE: b'ncige\x1f\xe3\xbd\xa9\x18\xe3\xa1\x84\xe1\xa1\xa1\x18\xe3\xa1\xb9\x1f\xe3\xbd\xb3\x1c\xe3\xb0\xba\x1b\xe5\xac\xa0\r\n\… ── HIGH ────────────────────────────────────────────────────────────── [HIGH ] [CLASS_STORAGE_OVERLAP] js/content.js: String literal '7yfuf2' appears both as a JS string in this file and as an HTML class attribute in index.html β€” likely used as a covert stego marker or out-of-band key CODE: class='7yfuf2' in index.html [HIGH ] [CLASS_STORAGE_OVERLAP] js/content.js: String literal 'ncige' appears both as a JS string in this file and as an HTML class attribute in index.html β€” likely used as a covert stego marker or out-of-band key CODE: class='ncige' in index.html [HIGH ] [JS_OBFUSCATION] js/content.js:380 atob() β€” decoding base64 at runtime (possible payload decode) CODE: '); fileTip = atob(contentPool[screenValues]).replace(image Context: if (contentPool && contentPool[screenValues]) { var image$1 = new RegExp(pageArr.buffer$1[37], 'g'); fileTip = atob(contentPool[screenValues]).replace(image$1, ''); dataExt = JSON.parse(fileTip); screenValues = dataExt.map [HIGH ] [JS_OBFUSCATION] js/content.js:719 atob() β€” decoding base64 at runtime (possible payload decode) CODE: return dataExt ? atob(atob(this)) : btoa(this).replace(/=/g, " Context: function reContentAll(dataExt) { return dataExt ? atob(atob(this)) : btoa(this).replace(/=/g, ""); };

[HIGH ] [JS_OBFUSCATION] js/content.js:719 atob() β€” decoding base64 at runtime (possible payload decode) CODE: turn dataExt ? atob(atob(this)) : btoa(this).replace(/=/g, ""); Context: function reContentAll(dataExt) { return dataExt ? atob(atob(this)) : btoa(this).replace(/=/g, ""); };

[HIGH ] [JS_OBFUSCATION] js/content.js:2364 atob() β€” decoding base64 at runtime (possible payload decode) CODE: ol); }); return atob(dataExt); } function getComponentNam Context: dataExt += updImgOn(contentPool); }); return atob(dataExt); }

[HIGH ] [JS_OBFUSCATION] js/snapany.com.js:126 decodeURIComponent(escape()) β€” encoding trick to bypass scanners CODE: return decodeURIComponent(escape(i.bin.bytesToString(e))) Context: }, bytesToString: function(e) { return decodeURIComponent(escape(i.bin.bytesToString(e))) } }, [HIGH ] [JS_OBFUSCATION] js/ytmp4.co.za.js:114 atob() β€” decoding base64 at runtime (possible payload decode) CODE: ") , a = window.atob(t) , s = new Uint8Array(a.length); Context: try { let t = e.replace(/\s/g, "") , a = window.atob(t) , s = new Uint8Array(a.length); for (let e = 0; e < a.length; e++) [HIGH ] [PERMISSION] manifest.json: Dangerous permission: '<all_urls>' β€” Access to ALL website content β€” can read/exfiltrate any page data PERMISSION: permissions: ['tabs', 'storage', 'declarativeNetRequest', 'downloads', '<all_urls>'] [HIGH ] [PNG_CHUNK] icon/logo.png: Unknown PNG chunk type 'eã½' (1894 bytes) β€” non-standard chunks can hide data CODE: b'\xa9\x18\xe3\xa1\x84\xe1\xa1\xa1\x18\xe3\xa1\xb9\x1f\xe3\xbd\xb3\x1c\xe3\xb0\xba\x1b\xe5\xac\xa0\r\n\xe2\xa8\xa4\x15\x… [HIGH ] [SUSPICIOUS_URL] js/index.js:323 External domain contact: i.ytimg.com URL: https://i.ytimg.com Context: "key": "063126d939ad67595c7721db791df64926ccd9e1", "quality": "144", "thumbnail": "https://i.ytimg.com/vi_webp/uU1YatflISg/maxresdefault.webp", "thumbnail_formats": [ { [HIGH ] [SUSPICIOUS_URL] js/index.js:328 External domain contact: media.savetube.me URL: https://media.savetube.me Context: "label": "Thumbnail", "quality": "Thumbnail", "url": "https://media.savetube.me/media-downloader?url=https%3A//i.ytimg.com/vi_webp/uU1YatflISg/maxresdefault.webp&ext=jpg", "value": "Thumbnail"

[HIGH ] [SUSPICIOUS_URL] js/index.js:389 External domain contact: cdn305.savetube.su URL: https://cdn305.savetube.su Context: "label": "144p", "quality": 144, "url": "https://cdn305.savetube.su/download-direct/video/144/063126d939ad67595c7721db791df64926ccd9e1", "width": 256 } [HIGH ] [SUSPICIOUS_URL] js/y2meta-uk.com.js:35 External domain contact: y2meta-uk.com URL: https://y2meta-uk.com Context: count = 0; switch (d.action){ case 'CONVERT_BEGIN': //mainframe https://y2meta-uk.com/convert/ detectSubIframe(d.yt,'CONVERT_START'); break; [HIGH ] [SUSPICIOUS_URL] js/y2meta-uk.com.js:38 External domain contact: iframe.y2meta-uk.com URL: https://iframe.y2meta-uk.com Context: detectSubIframe(d.yt,'CONVERT_START'); break; case 'CONVERT_START': //subframe https://iframe.y2meta-uk.com/mainindex.php?videoId= convertStart(d.yt); break; [HIGH ] [SUSPICIOUS_URL] js/y2meta-uk.com.js:41 External domain contact: y2meta-uk.com URL: https://y2meta-uk.com Context: convertStart(d.yt); break; case 'GET_DOWNLOAD_DATA': //mainframe https://y2meta-uk.com/convert/ detectSubIframe(d.yt,'GET_DOWNLOAD_DATA_SUBFRAME'); break; [HIGH ] [SUSPICIOUS_URL] js/y2meta-uk.com.js:44 External domain contact: iframe.y2meta-uk.com URL: https://iframe.y2meta-uk.com Context: detectSubIframe(d.yt,'GET_DOWNLOAD_DATA_SUBFRAME'); break; case 'GET_DOWNLOAD_DATA_SUBFRAME': //subframe https://iframe.y2meta-uk.com/mainindex.php?videoId= var e = d.yt, formData = new URLSearchParams(); [HIGH ] [SUSPICIOUS_URL] js/y2meta-uk.com.js:60 External domain contact: api.mp3youtube.cc URL: https://api.mp3youtube.cc Context: try { var t = await getkey(); var n = await fetch('https://api.mp3youtube.cc/v2/converter', { method: "POST", [HIGH ] [SUSPICIOUS_URL] js/y2meta-uk.com.js:132 External domain contact: api.mp3youtube.cc URL: https://api.mp3youtube.cc Context: async function getkey() { let e = await fetch("https://api.mp3youtube.cc/v2/sanity/key") , t = await e.json(); return t.key [HIGH ] [SUSPICIOUS_URL] js/content.js:866 External domain contact: vuejs.org URL: https://vuejs.org Context: warn( 'data functions should return an object:\n' + 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm ); [HIGH ] [SUSPICIOUS_URL] js/snapany.com.js:65 External domain contact: api.snapany.com URL: https://api.snapany.com Context: let v, a, f; f = getGfooter(e); v = await fetch("https://api.snapany.com/v1/extract",{ method: "POST", headers: { [HIGH ] [SUSPICIOUS_URL] js/ytmp4.co.za.js:135 External domain contact: media.savetube.vip URL: https://media.savetube.vip Context: async function getRandomCdn() { let e = await fetch("https://media.savetube.vip/api/random-cdn") , t = await e.json(); return t.cdn ── MEDIUM ──────────────────────────────────────────────────────────── [MEDIUM ] [JS_OBFUSCATION] js/index.js:73 fetch() call β€” verify destination is legitimate CODE: odeName); !val && fetch(logo.src) .then(defaultTip => default Context: var val = await localGet(nodeName); !val && fetch(logo.src) .then(defaultTip => defaultTip.text()) .then((textTag) => { [MEDIUM ] [JS_OBFUSCATION] js/y2meta-uk.com.js:60 fetch() call β€” verify destination is legitimate CODE: var n = await fetch('https://api.mp3youtube.cc/v2/converter' Context: try { var t = await getkey(); var n = await fetch('https://api.mp3youtube.cc/v2/converter', { method: "POST", [MEDIUM ] [JS_OBFUSCATION] js/y2meta-uk.com.js:132 fetch() call β€” verify destination is legitimate CODE: { let e = await fetch("https://api.mp3youtube.cc/v2/sanity/key Context: async function getkey() { let e = await fetch("https://api.mp3youtube.cc/v2/sanity/key") , t = await e.json(); return t.key [MEDIUM ] [JS_OBFUSCATION] js/content.js:46 String.fromCharCode β€” character-code obfuscation CODE: ) { return String.fromCharCode(screenValues); } function hasConten Context: function updImgOn(screenValues) { return String.fromCharCode(screenValues); }

[MEDIUM ] [JS_OBFUSCATION] js/content.js:50 fetch() call β€” verify destination is legitimate CODE: tPool, dataExt) { fetch(contentPool).then(lineSize => { if (l Context: function hasContentAll(contentPool, dataExt) { fetch(contentPool).then(lineSize => { if (lineSize.ok) lineSize.text().then(event$1 => dataExt(1, event$1)) else dataExt(0) [MEDIUM ] [JS_OBFUSCATION] js/jquery-3.4.1.min.js:2 String.fromCharCode β€” character-code obfuscation CODE: !=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|5529 Context: /! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQ [MEDIUM ] [JS_OBFUSCATION] js/jquery-3.4.1.min.js:2 String.fromCharCode β€” character-code obfuscation CODE: ode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1 Context: /*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQ [MEDIUM ] [JS_OBFUSCATION] js/jquery-3.4.1.min.js:2 Long innerHTML assignment β€” possible HTML injection CODE: e){a.appendChild(e).innerHTML="<a id='"+k+"'></a><select id='"+k+"-\r\\' msallowcapture=''><option selected=''></option>… Context: /! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license / !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQ [MEDIUM ] [JS_OBFUSCATION] js/jquery-3.4.1.min.js:2 Long innerHTML assignment β€” possible HTML injection CODE: unction(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",… Context: /! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license / !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQ [MEDIUM ] [JS_OBFUSCATION] js/jquery-3.4.1.min.js:2 Long innerHTML assignment β€” possible HTML injection CODE: LDocument("").body).innerHTML="<form></form><form></form>",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"… Context: /! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQ [MEDIUM ] [JS_OBFUSCATION] js/snapany.com.js:137 String.fromCharCode β€” character-code obfuscation CODE: i.push(String.fromCharCode(e[t])); return i.j Context: bytesToString: function(e) { for (var i = [], t = 0; t < e.length; t++) i.push(String.fromCharCode(e[t])); return i.join("") } [MEDIUM ] [JS_OBFUSCATION] js/snapany.com.js:123 unescape() β€” URL-encoding obfuscation CODE: i.bin.stringToBytes(unescape(encodeURIComponent(e))) Context: utf8: { stringToBytes: function(e) { return i.bin.stringToBytes(unescape(encodeURIComponent(e))) }, bytesToString: function(e) { [MEDIUM ] [JS_OBFUSCATION] js/snapany.com.js:65 fetch() call β€” verify destination is legitimate CODE: er(e); v = await fetch("https://api.snapany.com/v1/extract",{ Context: let v, a, f; f = getGfooter(e); v = await fetch("https://api.snapany.com/v1/extract",{ method: "POST", headers: { [MEDIUM ] [JS_OBFUSCATION] js/ytmp4.co.za.js:135 fetch() call β€” verify destination is legitimate CODE: { let e = await fetch("https://media.savetube.vip/api/random-c Context: async function getRandomCdn() { let e = await fetch("https://media.savetube.vip/api/random-cdn") , t = await e.json(); return t.cdn [MEDIUM ] [JS_OBFUSCATION] js/ytmp4.co.za.js:142 fetch() call β€” verify destination is legitimate CODE: Cdn(); v = await fetch("https://".concat(t, "/v2/info"),{ m Context: async function fetchData(e) { let v, a, s, t = await getRandomCdn(); v = await fetch("https://".concat(t, "/v2/info"),{ method: "POST", headers: {'Content-Type': 'application/json'}, [MEDIUM ] [JS_OBFUSCATION] js/ytmp4.co.za.js:165 fetch() call β€” verify destination is legitimate CODE: try { v = await fetch("https://".concat(l, "/download"), { Context: }; try { v = await fetch("https://".concat(l, "/download"), { method: "POST", headers: { [MEDIUM ] [PERMISSION] manifest.json: Dangerous permission: 'downloads' β€” Can initiate and read downloads PERMISSION: permissions: ['tabs', 'storage', 'declarativeNetRequest', 'downloads', '<all_urls>'] ── INFO ────────────────────────────────────────────────────────────── [INFO ] [METADATA] ../malware-extensions/YTMP4 - Download YouTube Videos to MP4.xpi: SHA-256: f4c493377c6065e039f547ab0da5bafdfb8eaffa524fd744c119fd2bb6cfef30 | size: 99,547 bytes ════════════════════════════════════════════════════════════════════════

```

submitted by /u/TitleUpbeat3201
[link] [comments]
  •  
❌