Reading view
I tested an $80 monitor with a 144Hz refresh rate, and it's a 'Pro' option in several ways
I've worn the Oura Ring and Apple Watch for years: Here's which of two is more essential
Windows 11 Home vs. Windows 11 Pro: I found the differences that truly matter
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:
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.
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.
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.
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.
[link] [comments]
How Flipboard's new Surf app lets you merge social feeds, YouTube, and RSS to escape the algorithm - finally
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.
[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:
- Connect to an unauthenticated OpenClaw instance β get pairing access (no credentials needed)
- Register a fake device asking for operator.admin scope
- Approve your own request with
/pair approve [request-id] - System grants admin because it never checks if you are authorized to grant admin
- 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:
- Check your version:
openclaw --version. If it's anything before 2026.3.28, stop what you're doing - Upgrade (one command:
npm install openclaw@2026.3.28) - Run forensics if you've been running vulnerable versions:
- List admin devices:
openclaw devices list --format jsonand look for admins approved by pairing-only users - Check audit logs for
/pair approveevents in the last week - If registration and approval timestamps are seconds apart and approver isn't a known admin = you got hit
- List admin devices:
Let me know if you're interested, happy to share the link.
[link] [comments]
I tried ChatGPT's new CarPlay integration: It's my go-to now for the questions Siri can't answer
Oklahoma Tax Breach and FBI Impersonation Scam: This Week in Scams

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.Β

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.
CBP Facility Codes Sure Seem to Have Leaked Via Online Flashcards
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.
[link] [comments]
Do Apple's new AirPods Max 2 beat the AirPods Pro 3? I've tried both, here's my take
Bloom Card vs. Brick: My verdict after trying both gadgets to cut screen time
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 ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
[link] [comments]