ha470 10 months ago

I’m Hursh, cofounder and CTO of The Browser Company (the company that makes Arc). Even though no users were affected and we patched it right away, the hypothetical depth of this vulnerability is unacceptable. We’ve written up some technical details and how we’ll improve in the future (including moving off Firebase and setting up a proper bug bounty program) here: https://arc.net/blog/CVE-2024-45489-incident-response.

I'm really sorry about this, both the vuln itself and the delayed comms around it, and really appreciate all the feedback here – everything from disappointment to outrage to encouragement. It holds us accountable to do better, and makes sure we prioritize this moving forward. Thank you so much.

  • ayhanfuat 10 months ago

    Was the post written for HN users only? I cannot see it on your blog page (https://arc.net/blog). It’s not posted on your twitter either. Your whole handling seems to be responding only if there is enough noise about it.

    • sushid 10 months ago

      Hursh, can you please respond to the above commenter? As an early adopter, I find it fairly troubling to see a company that touts transparency hide the blog post and only publicly "own up to it" within the confines of a single HN thread.

      • ha470 10 months ago

        We’re working on a proper security bulletin site that will have these front and center! This was a bit of a stopgap for now.

      • wahnfrieden 10 months ago

        Pretty obvious now that Arc will only share security alerts with the people who "catch" them at it - as few as possible

        Leaves no choice but for this community to make the rest of the Arc community aware of it as they refuse the transparency

    • titaniumtown 10 months ago

      Not a good look it not being on the main page! I personally use [zen browser](https://github.com/zen-browser/desktop); I like the ideas of Arc, but it always seemed sketchy to me, especially it being Chromium-based and closed-source.

      • footy 10 months ago

        I used Arc for a while because despite my misgivings about using a browser that requires an account etc the workflow was very good for me

        I started moving to Zen about a week ago, hearing about this vulnerability yesterday and especially seeing their reaction to it I know I made the right choice in leaving Arc.

      • gukkey 10 months ago

        The only feature Zen browser missing is tab folders, once they implement it I really don't have a reason to have Arc browser anymore.

      • zem 10 months ago

        zen looks really nice! thanks for the pointer.

    • [removed] 10 months ago
      [deleted]
  • tomjakubowski 10 months ago

    Hi Hursh, I'm Tom. A couple friends use Arc and they like it, so I had considered switching to it myself. Now, I won't, not really because of this vulnerability itself (startups make mistakes), but because you paid a measly $2k bounty for a bug that owns, in a dangerous way, all of your users. I won't use a browser made by a vendor who takes the security of their users this unseriously.

    By the way, I don't know for sure, but given the severity I suspect on the black market this bug would have gone for a _lot_ more than $2k.

    • poincaredisk 10 months ago

      Selling vulnerability on the black market is immoral and may be illegal. The goal of bug bounty programs was initially to signal "we won't sue white hat researchers who disclose their findings to us", when did it evolve into "pay me more than criminals would, or else"?

      • tolmasky 10 months ago

        Let's set aside morality for a second. There is a reason low payouts are bad without even having to consider the black market: it pushes people to search for bugs in a competitor's app that pays more instead of in your app!

        If your app is paying out $2K and a competing app pays out $100K, why would anyone bother searching for bugs in your app? Every minute spent researching your app pay 1/50th of what you'd get searching in the competing app (unless your app has 50x more bugs I suppose, but perhaps then you have bigger problems...).

        I'm always so confused by the negative responses to people asking for higher bug bounties. It feels like it still comes from this weird entitlement that researchers owe you the bug report. Perhaps they do. But you know what they definitely don't owe you? Looking for new bugs! Ultimately this attitude always leads to the same place: the places that pay more protect their users better. It is thus completely reasonable to decide not to use a product as a user if the company that makes the product isn't paying high bug bounties. It's the same as discovering that a restaurant is cheeping out on health inspections and deciding to no longer eat there.

    • JumpCrisscross 10 months ago

      > because you paid a measly $2k bounty for a bug that owns, in a dangerous way, all of your users

      The case is redeemable. It may still be an opportunity if handled deftly. But it would require an almost theatrical display of generosity to the white hat (together, likely, with a re-constituting of the engineering team).

    • ljm 10 months ago

      You have no idea but you suspect someone could have made more?

      • xelamonster 10 months ago

        After thinking about it for a good long ten seconds, yeah. It would be very easy to steal users' banking information with this. If you crack into one single bank account you have a decent shot at making over $2k right there, a skilled hacker could do a lot more.

    • tengbretson 10 months ago

      So you're not going to use Arc. How much do you pay for the browser you do use?

      • lytedev 10 months ago

        Statistically, Tom is using a browser that cost him $0. Why are you asking?

    • keepamovin 10 months ago

      Should have at least paid €1 per user. Eh, maybe that’s what they did?

  • rachofsunshine 10 months ago

    Comments further down are concerned that on each page load, you're sending both the URL and a(n identifiable?) user ID to TBC. You may want to comment on that, since I think it's reasonable to say that those of us using not-Chrome (I don't use Arc personally, but I'm definitely in the 1% of browser users) are likely to also be the sort of person concerned with privacy. Vulnerabilities happen, but sending browsing data seems like a deliberate design choice.

    • mthoms 10 months ago

      I think that is addressed in the post. Apparently the URL was only sent under certain conditions and has since been addressed:

      >We’ve fixed the issues with leaking your current website on navigation while you had the Boost editor open. We don’t log these requests anywhere, and if you didn’t have the Boosts editor open these requests were not made. Regardless this is against our privacy policy and should have never been in the product to begin with.

      Given the context (boosts need to know the URL they apply to after all) this indeed was a "deliberate design choice" but not in the manner you appear to be suggesting. It's still very worrisome, I agree.

  • tyho 10 months ago

    There isn't really anything you can do to convince me that your team has the expertise to maintain a browser after this. It doesn't matter that you have fixed it, your team is clearly not capable of writing a secure browser, now or ever.

    I think this should be a resigning matter for the CTO.

    • avarun 10 months ago

      And what, you’re going to find them a new CTO? What kind of magical world do you live in where problems are solved by leaders resigning, instead of stepping up and taking accountability?

      • smt88 10 months ago

        Taking accountability can and should include admitting you're the wrong person for the job and resigning.

      • strunz 10 months ago

        What kind of accountability is it when there's no personal consequences?

      • [removed] 10 months ago
        [deleted]
      • yas_hmaheshwari 10 months ago

        Yeah, I also think that asking someone to resign for this does not look like a proportionate response

        They are owning up to their mistakes and making sure such things don't happen again (and increasing the amount from 2K :-)) seems like the right approach to me

    • pembrook 10 months ago

      Surprise surprise, turns out it takes a looong time for every software startup to finally strip out all the hacky stuff from their MVP days. Apparently nobody on this startup community forum has ever built a startup before.

      Pro tip: if stuff like this violently upsets you, never be an early adopter of anything. Wait 5-10 years and then make your move.

      Personally, I expect stuff like this from challenger alternatives, this is the way it should be. There is no such thing as a new, bug-free software product. Software gets good by gaining adoption and going through battle testing, it’s never the other way around like some big company worker would imagine.

      • thruway516 10 months ago

        I don't think you understood the severity or the noobiness of the error. This is a browser not a crud app or electron app. A browser is a complex system level piece of software not a hacky mvp and this kind of error shows that maybe they don't have the competence to be building something like this. It makes you wonder what other basic flaws are there just waiting to be exploited, even if its built on top of chromium. Would you fly in an mvp airplane built by bicycle engineers? (maybe not the best analogy since the first airplane was built by bicycle engineers)

    • Insanity 10 months ago

      Well, the current team perhaps.

      But it's also likely part of the startup mentally of "move fast and break things", which is not entirely compatible with the goal of the browser.

  • bloopernova 10 months ago

    Will you be increasing the bug bounty payout? $2,000 is a tiny fraction of what this bug is worth, I hope you will pay the discoverer a proper bounty.

    You've been handed a golden opportunity to set the right course.

    • JumpCrisscross 10 months ago

      > $2,000 is a tiny fraction of what this bug is worth

      The Browser Company raises $50mm at a $550mm post-money valuation in March [1]. They’ve raised $125mm altogether.

      Unless they’re absolute asshats, they’ll increase the bug payout. But people act truly when they don’t think they’re being watched—a vulnerability of this magnitude was worth $2k to this company. That’s…eyebrow raising.

      [1] https://techcrunch.com/2024/03/21/the-browser-company-raises...

      • shuckles 10 months ago

        "We will let anyone run arbitrary JavaScript on all your web pages if you send them a referral link" is surely a 6-7 figure vulnerability for a web browser. That this vulnerability was discoverable using about two steps of analysis tools suggests many more issues are in the product.

      • behringer 10 months ago

        It doesn't matter what bug bounty pay pay. If it was 200k people would say it's not enough.

    • Laaas 10 months ago

      Any new vulnerability will be sold to the highest bidder and/or exploited instead of being reported for the bug bounty because of this.

      • poincaredisk 10 months ago

        Most of the vulnerabilities I've disclosed, and I've seen disclosed, were disclosed for free, with no expectation of getting anything. Why do you think every researcher is an amoral penny pincher who will just sell exploits without caring for the consequences?

      • UncleMeat 10 months ago

        I know a lot of different people who do independent security research and have submitted vulns to bounty programs. Not a single one would even come close to saying "well, the bounty is low so I'll sell this on the black market."

        Low bounties might mean that somebody doesn't bother to look at a product or doesn't bother to disclose beyond firing off an email or maybe even just publishes details on their blog on their own.

        Bounties aren't really meant to compete with black markets. This is true even for the major tech companies that have large bounties.

    • [removed] 10 months ago
      [deleted]
  • qwertox 10 months ago

    > including moving off Firebase

    Firebase is not to blame here. It's a solid technology which just has to be used properly. Google highlights the fact that setting up ACLs is critical and provides examples on how to set them up correctly.

    If none of the developers who were integrating the product into Arc bothered about dealing with the ACLs, then they are either noobs or simply didn't care about security.

    • com2kid 10 months ago

      Saying Google provides examples of being rather nice about it.

      Firebase ACLs are a constant source of vulnerabilities largely because they are confusing and don't have enough documentation around them.

  • tanx16 10 months ago

    > We’re also bolstering our security team, and have hired a new senior security engineer.

    Is there a reason why you don’t have any security-specific positions open on your careers site?

    • ha470 10 months ago

      We did but we closed the roles by hiring folks. They just haven’t joined yet.

  • zo1 10 months ago

    Until this individual comes back and responds to at least a few of the questions/comments, I don't think we should even pay attention to this marketing-dept-written post. They basically want this to go away, and answering any questions would raise more issues most likely, so they just seemed to have done the bare minimum and left it at that. It's 3 hours later now, they might as well have not even posted anything here.

  • exdsq 10 months ago

    $2000 is an absurdly small bounty here - you should up that

    • radicaldreamer 10 months ago

      50k or 100k would be far more appropriate given the severity of this issue. But overall, this makes me think there's probably a lot more vulnerabilities in Arc that are undiscovered/unpatched.

      Also, there's the whole notion of every URL you visit being sent to Firebase -- were these logged? Awful for a browser.

      • [removed] 10 months ago
        [deleted]
    • ha470 10 months ago

      Ya this is fair! Honestly this was our first bounty ever awarded and we could have been more thoughtful. We’re currently setting up a proper program and based on that rubric will adjust accordingly.

      • ARandomerDude 10 months ago

        > Honestly this was our first bounty ever awarded and we could have been more thoughtful

        That’s corporate speak for “no, we won’t pay the researcher any more money.”

      • karlzt 10 months ago

        $200k for this big bug.

        • karlzt 10 months ago

          My comment has been downvoted twice, but I don't see it grayed out, I wonder why.

  • FleetAdmiralJa 10 months ago

    I think the bigger question is: Why are you violating your own security policy by keeping track on what we browse. I though my browsing is private and hidden away from you but if you store my browsing data in your firebase this is not acceptable at all.

  • liendolucas 10 months ago

    > "...the hypothetical depth of this vulnerability is unacceptable."

    What is also unacceptable is to pay 2000 dollars for something like this AND have to create user accounts to use your browser. Will definitely stay away from it.

  • _kidlike 10 months ago

    no mention of the pitiful bounty reward (2000 usd). only sorry and thanks. Please award this person a proper bounty.

  • __turbobrew__ 10 months ago

    Are you going to address the part where you send visited websites to Firebase which goes against your privacy policy of not tracking visited URLs?

  • markandrewj 10 months ago

    I would like to respectfully provide the suggestion of allowing for the use of Arc without being signed into an account. Although I understand browser/device sync is part of most modern browsers, and the value it provides, normally it is a choice to use this feature. Arc still provides a lot of attractive features, even without browser sync on.

  • benreesman 10 months ago

    I like Arc, and I don’t want to pile on: God knows I’ve written vulnerable code.

    To explore a constructive angle both for the industry generally and the Browser Company specifically: hire this clever hacker who pwned your shit in a well-remunerated and high-profile way.

    The Browser Company is trying to break tradition with a lot of obsolete Web norms, how about paying bullshit bounties under pressure rather than posting the underground experts to guard the henhouse.

    If the Browser Company started a small but aggressive internal red team on the biohazard that is the modern web?

    I’ll learn some new keyboard shortcuts and I bet a lot of people will.

  • nixosbestos 10 months ago

    So when there are near weekly reports of websites being compromised due to horrid Firebase configuration, did absolutely no one on your teams raise a red flag? Is there some super low-pri ticket that says "actually make sure we use ACLs on Firebase"?

  • kernal 10 months ago

    >Arc brought order to the chaos that was my online life. There’s no going back.

    Bringing the chaos back like it's 1999.

  • msephton 10 months ago

    I misread your name as Hush which is kind of fitting considering how you're trying to make this go away

  • metadat 10 months ago

    Hursh / ha470, where did you go? There are lots of good questions in the replies to your thread, yet you went dark immediately after posting more than 8 hours ago. It's hard to imagine what could be more pressing than addressing people's concerns after a major security incident such as this.

    To be honest, I'm a bit disappointed. For future reference, this doesn't seem like a good strategy to contain reputational damage.

  • FactKnower69 10 months ago

    remember when reading this that this guy's company is valued at a billion dollars and his comp is 10x yours if not more. we live in a meritocracy

  • ycombinatrix 10 months ago

    ngl this is pretty pathetic. the massive security hole is one thing but you're just gonna gloss over violating your own privacy policy?

  • exabrial 10 months ago

    Bro you should be requiring accounts to download HTML. Come on man.

  • mirzap 10 months ago

    Pay the guy properly. $2000 is an insult. It should be $50k. This kind of bug could be sold for 100-200k easily.

    • JumpCrisscross 10 months ago

      > This kind of bug could be sold for 100-200k easily

      Maybe not. If the browser is that buggy, there may be plenty of these lying around. The company itself is pricing the vulnerability at $2k. That should speak volumes to their internal view of their product.

      • radicaldreamer 10 months ago

        Many engineers at SV startups use Arc on a daily basis. This bug could've resulted in the compromise of multiple companies, probably including crypto exchanges. A browser bug of this severity is extremely valuable, even for a niche browser like Arc.

      • shuckles 10 months ago

        I think OP mean to say "this bug could let an attacker gain $200k of value easily", though you are right the market clearing price for such a vulnerability is probably low due to huge supply.

      • [removed] 10 months ago
        [deleted]
    • [removed] 10 months ago
      [deleted]
    • [removed] 10 months ago
      [deleted]
  • ibash 10 months ago

    Thanks for the response.

    While people might nitpick on how things were handled, the fact that you checked if anyone was affected and fixed it promptly is a good thing.

    • ziddoap 10 months ago

      It is not really nitpicking, given the severity.

      Being prompt on a vulnerability of this magnitude should be considered "meeting the standard" at best.

    • metadat 10 months ago

      The CTO and co-founder didn't check in on any of the concerns, completely disappeared after leaving a heartfelt comment. This comes off as incredibly disingenuous.

zachrip 10 months ago

I just want to call out that there is a lot of blame put on firebase here in the comments but I think that's just people parroting stuff they don't actually know about (I don't use firebase, I have tried it out in the past though). This isn't some edge case or hard to solve thing in firebase, this is the easy stuff.

The real issue here is that someone wrote an api that trusted the client to tell it who they were. At the end of the day this is an amateur mistake that likely took a 1 line diff to fix. Don't believe me? Check out the docs: https://firebase.google.com/docs/rules/rules-and-auth#cloud-... - `request.auth` gives you the user id you need (`request.auth.uid`).

  • tr3ntg 10 months ago

    As someone with an app built on firebase, yes. As the author rightly points out, it's very easy to misconfigure, but basic security practices like these are highlighted in bright, bold warning text in the Firebase docs.

    Security rules are meant to be taken seriously, and it's your only line of defense.

    • swatcoder 10 months ago

      > bold warning text in the Firebase docs.

      Unfortunately, we currently have an industry where highly paid "engineers" unironically believe that their job can be done by reading/watching random tutorials, googling for StackOverflow answers, and pasting code from gists.

      Attentively reading documentation or developing a mental model of how your tools work so that you know how they are built to be handled does not make it on to any job listing bullet points. It presumably fell off the bottom in favor of team spirit or brand enthusiasm or whatever.

      How many tutorials, community answers, and gists do you think conveyed that warning?

      • ggregoire 10 months ago

        Reading/watching random tutorials and asking basic questions on SO __instead of reading the official docs__ is a trend I've observed for the last 10 years. Even for stuff pretty well documented like Python, Postgres, React, etc.

      • pphysch 10 months ago

        "don't trust the client / validate inputs" is software security 101

      • JohnMakin 10 months ago

        This may or may not be fair, but in my view, the type of person that would opt for a firebase solution is probably the type of person most vulnerable to foot guns.

      • jahewson 10 months ago

        Sadly true, but Firestore has a security rules emulator and encourages you to write unit tests for it! There's just so many levels of "ignored all reasonable practices" here. Where's the code review? Where's the security/privacy audit?

      • netdevnet 10 months ago

        I am glad to put engineers in quotes because many people here and elsewhere will use that word with a straight face while also believing that you can call yourself that while learning your job from watching youtube vids and pasting code you don't understand. We need to stop using the word "engineer" for "software developer".

        I shall watch the downvotes come from these so called "engineers".

      • 725686 10 months ago

        Nah, just ask ChatGPT.

        • firewolf34 10 months ago

          ChatGPT would have probably parrotted the bold text. It is always super concerned about risks.

    • bichiliad 10 months ago

      I think a system that makes it this easy to shoot yourself in the foot is probably not a great system. Documentation is important, and I'm glad it's clear and obvious, but humans make mistakes. You'd hope that the mistakes have less dire consequences.

    • rakoo 10 months ago

      > it's very easy to misconfigure, but basic security practices like these are highlighted in bright, bold warning text in the Firebase docs.

      I'm sorry but if the whole design is "one big database shared with everyone and we must manually configure the database for auth" there is a problem that's deeper than just having to read the doc. It means the basic understanding of what it means to keep data as private as possible is not understood. A shared database only works when the server accesses it, not when client has direct access.

      What Arc needs is to segregate each user's data in a different place, in the design of the database, not as part of configuration of custom code. Make it impossible to list all user's data, or even users. When, not if, an id is guessed, related data becomes accessible by someone else; make it so that someone else still can't read it, or can't replace it.

      • esperent 10 months ago

        Also how does this work legally with regards to data sovereignty? Is it just a case of hoping nobody notices/complains?

    • wredue 10 months ago

      Nobody reads docs dude. They copy and paste stack overflow answers, and now, copilot answers, which is going to be based on stack overflow ultimately anyway.

      • NewJazz 10 months ago

        Just with less context and review.

      • BobaFloutist 10 months ago

        Maybe docs should try to be consistently more accurate, up to date, and legible than (even) stack overflow answers ¯ \ _ ( ツ ) _ / ¯

  • bcrosby95 10 months ago

    It's interesting to see software engineers going from rolling their own auth, to not rolling their own auth, to not even noticing this quite blatant security problem.

    It doesn't matter if you roll your own auth or not, you need to understand a very basic fundamental of it all: never trust the client.

  • NewJazz 10 months ago

    At the end of the day this is an amateur mistake

    God I wish. More than one of my coworkers has made this exact mistake with our (thankfully internal) front-end apps.

    • make3 10 months ago

      I guess we're not always professionals at all the work that we do, if that makes sense

    • albedoa 10 months ago

      Are you defining amateurs as people who are not your coworkers? It can still be an amateur mistake.

      • randomdata 10 months ago

        Coworker implies paid work, and therefore they are not amateurs. They very well may make the same mistakes, but those mistakes would be professional mistakes.

    • knowitnone 10 months ago

      If it's internal, did they really need to have auth?

      • larsrc 10 months ago

        YES!!! You need auth to prevent employees from looking up sensitive user data without a good reason, or it'll be a stalker's haven. And to prevent possible intruders from gaining more data/access. Defense in depth. And for preventing an experiment from wiping use data. And for so many other reasons!

      • mrguyorama 10 months ago

        The term of art is "Friendly fraud".

        A significant amount of product stolen from retail stores actually goes out the back door.

      • JumpCrisscross 10 months ago

        > If it's internal, did they really need to have auth?

        Nothing on a network is truly internal. The moment you break the physical link between metal and man you're in an unintuitive, and thus insecure, state.

  • kerkeslager 10 months ago

    A security plan which depends on any person never making an amateur mistake, is an amateur mistake.

  • kfarr 10 months ago

    Agreed, if I understand correctly the fix to this issue would be the following rules inside of a "match" statement in firestore.rules which is plainly documented as firebase firestore security 101:

    ```

    // Allow create new object if user is authenticated

    allow create: if request.auth != null;

    // Allow update or delete document if user is owner of document

    allow update, delete: if request.auth.uid == resource.data.ownerUID

    ```

    • GVRV 10 months ago

      Didn't they already have these rules in place? And the vulnerability was when the owner was updating the resource to have a new owner?

      • kfarr 10 months ago

        Unclear if they had these rules in place already but I'm curious... If the rule permits writing when the userid matches, presumably there is nothing stopping the write operation to change the userid value, to your point.

        Which then leads me to the next question, what is the practical way to write rules against that operation?

        • GVRV 10 months ago

          In my limited experience, I've seen it handled by adding the user's ID in the path of any resource that belongs to a particular user, so that the user ID from the resource path can be compared with the authenticated user ID as a security rule condition.

          But as expected, you can validate the incoming data as well https://firebase.google.com/docs/firestore/security/rules-co... but this would need to be done for any attribute that might lead to a change of ownership.

    • cutemonster 10 months ago

      Is there no Allow-read? Edit: Yes,

          allow read, update, delete: if request.auth != null && request.auth.uid == userId;
  • vertical91 10 months ago

    This is what happens when you hire solely based on leetcode skill. A shit-tier engineer can master leetcode within months, but a good engineer will probably struggle at Find Nth Smallest Sum problem because he spends more time reading and thinking about code.

    Leetcode is a fucking joke to the industry, gone are the days when you actually had good code with devs who spent time thinking about information architecture. In my experience boomer devs are actually the only ones who write idiomatic code. Millennial and Gen-z devs are the worst, they have no understanding beyond basic function calling.

  • nsonha 10 months ago

    the whole idea of firebase is flawed as logic that belongs to a server is now on the client side. I don't know much about security but that sounds like making any centralized rule (eg security) hard to implement. It also tends to expose more internal logic than the client needs to know, which is bad in both software design and security.

water-data-dude 10 months ago

I just wanted to say, I enjoyed the little pixel art cat that runs towards wherever you click immensely. It’s one of those fun, whimsical little touches that I don’t see all that often. A reminder that the internet can be a fun, whimsical place if we want it to be :)

  • Semaphor 10 months ago

    As I didn’t get that, it seems like the dev honors prefers-reduced-motion, and doesn’t display it in that case. Excellent of them, give joy to those who want it, prevent annoyances for those who hate them.

  • johndough 10 months ago

    On Debian, you can install and run the cat with

        sudo apt install oneko
        oneko &
    
    Makes a great gift for colleagues who leave their computer unattended.
    • bbarnett 10 months ago

      Well that was a rabbit hole.

      Current version is hard to even see with high-res screens. A few checks shows endless ports, code from the 90s and before, and all sorts of other fun.

      Wonder if the author will reply.

    • 0x1ceb00da 10 months ago

      You have sudo access to your colleagues computers?

      • johndough 10 months ago

        I don't, but I run the same system configuration, so I can compile it on my computer, transfer it and run it.

        Alternatively, if a compiler such as gcc is available, you could also run

            # https seems to be broken on this website currently
            wget http://www.daidouji.com/oneko/distfiles/oneko-1.2.sakura.5.tar.gz
            tar -xf oneko-1.2.sakura.5.tar.gz
            cd oneko-1.2.sakura.5/
            gcc oneko.c -lX11 -lm -o oneko
            ./oneko &
            cd ..
            # remove all traces
            rm -r oneko-1.2.sakura.5 oneko-1.2.sakura.5.tar.gz
  • hbn 10 months ago

    It's cute but I just can't focus on the article knowing the cat is gonna move every time I move my mouse or scroll. I popped open my console and deleted him. Sorry, kitty

  • nkrisc 10 months ago

    And here I was wishing it would go away and trying to find a way to hide it because on my phone it was always covering text. Firefox reader mode worked.

  • jonny_eh 10 months ago

    I found it, like an actual cat, extremely distracting.

    • knowitnone 10 months ago

      it sits when it's next to pointer. just don't move your mouse.

  • TiredOfLife 10 months ago

    On desktop it follows the mouse no need to click.

  • lukan 10 months ago

    I did not. On the firefox mobile browser it was just using screen space.

  • brettermeier 10 months ago

    It is distracting and annoyed me, I stopped reading because of it.

    • lelandfe 10 months ago

      I thought it just ran around on the top line of the header, and was quite taken with it. I then scrolled and it followed me right into the middle of a paragraph. Less taken, but cat's gonna cat.

  • zendaven 10 months ago

    I guess it's removed? I don't see it. On Windows Chrome.

Borgz 10 months ago

According to this article, Arc requires an account and sends Google's Firebase the hostname of every page you visit along with your user ID. Does this make Arc the least private web browser currently being used?

  • causal 10 months ago

    I trashed Arc immediately after install when I found out having an account was mandatory. That seemed so silly, like toothbrushes-requiring-wifi absurd. How much moreso now.

    • scblock 10 months ago

      Truly. I was looking for a privacy respecting Chromium-based browser to use for Web MiniDisc (https://web.minidisc.wiki/) and came across some enthusiastic praise for Arc. I downloaded it and it immediately wanted me to create an account to even use it. How can that possibly respect my privacy? It went right in the trash.

      • timeon 10 months ago

        What is also strange that I only found out about account after download. Like it was standard thing for the browser. (Sure there are optional accounts in others but login-walled browser?)

    • macintux 10 months ago

      I had the same response when I downloaded Dart and discovered that a programming language thought it was acceptable to send telemetry.

      • rixed 10 months ago

        In 2024 it is considered normal for an _operating_system_ to require an account, an information that is potentially passed around to any app running on it.

    • pndy 10 months ago

      I had doubts already when submissions promoting the browser were added on hn while there was no way to see how it looks like or even test it out - for quite some time there was nothing but mail singup on their page.

      https://news.ycombinator.com/item?id=35801529

    • DevX101 10 months ago

      I did the same. Requiring an account for a browser is immediately disqualifying. I don't care how many features it has.

  • AzzyHN 10 months ago

    I think OperaGX wins that award

  • mrweasel 10 months ago

    I'm also left wondering: How broken would Arc be, if Firebase was to go down?

    • diggan 10 months ago

      I guess it's relatively easy to test, add the Firebase domain to your host file and point it to 127.0.0.1 and try to use the browser.

      Sometimes things like this handle connection failures better than "never-ending connection attempts", so you might want to try to add a throttle or something too for the traffic between the domain and the browser, might also trip it up.

  • Saris 10 months ago

    When I downloaded it a few months ago and it required an account to even use it, my gut feeling was that I should just stick with Firefox.

  • qwertox 10 months ago

    They don't encrypt the data they send via Firebase?

    I mean, even Google suggests doing this with sensitive data.

  • ARandomerDude 10 months ago

    "Arc is the Chrome replacement I’ve been waiting for." [1]

    > https://arc.net/

    I guess now we know why they frame it that way.

    • kccqzy 10 months ago

      Chrome does not require an account to use. And Chrome by default doesn't send sites you visit to Google, unless you turn on the "make searches and browsing better" feature or the "enhanced safe browsing" feature.

      So the OP is right. Arc's privacy is worse than Chrome.

ko_pivot 10 months ago

This is such a fantastic bug. Firebase security rules (like with other BaaS systems like Firebase) have this weird default that is hard to describe. Basically, if I write my own API, I will set the userId of the record (a 'boost' in this case) to the userId from the session, rather than passing it in the request payload. It would never even occur to a developer writing their own API past a certain level of experience to let the client pass (what is supposed to be) their own userId to a protected API route.

On the other hand, with security rules you are trying to imagine every possible misuse of the system regardless of what its programmed use actually is.

  • nottorp 10 months ago

    > On the other hand, with security rules you are trying to imagine every possible misuse of the system regardless of what its programmed use actually is.

    Tbh you're doing it wrong if you go that way.

    Default deny, and then you only have to imagine the legitimate uses.

    • ko_pivot 10 months ago

      Fair enough, but my point is more conceptual, in that you still have to write `boost.userId == auth.userId` as an allowed pattern rather than making that pattern the only technically possible result, which is the convention in a traditional API.

      • dwattttt 10 months ago

        The failure modes are much clearer: when you write the API in a default-deny context & forget to add that allowed pattern, it never works, so you notice & figure out the bug.

        The same story with default-allow means the system looks like it works fine, and you end up with no security at all.

    • sorrythanks 10 months ago

      And then when you imagine the legitimate uses you have to imagine how allowing those legitimate uses could be misused. You always need to think red and blue.

  • kevincox 10 months ago

    For inserts yes, but for updates I've frequently seen cases where people just stuff the whole request into their ORM or document store. It is pretty easy to think "the owner can update the document" without realizing that there are some fields (that the official client doesn't set) that shouldn't be updated (like the owner or created timestamp).

    The correct solution is likely default-deny auth for every single field. Then you at least have to explicitly make the owner field writable, and hopefully consider the impact of transfering this object to another user.

ARandomerDude 10 months ago

I'm amazed by how profoundly stupid this vulnerability is. To get arbitrary code execution, you literally just send somebody else's user ID, which is fairly trivial to obtain.

I don't work at FAANG. I just work at some company that makes crap products you don't actually need, and even I would never build this kind of bug.

But these people want to build a web browser, with all the security expertise and moral duty that implies?! Wow.

  • bilater 10 months ago

    Can you explain how you could get someone else's user id? I get that this is still a big vulnerability but am trying to understand how that would happen.

    • darthwalsh 10 months ago

      It says in the article. If you share one of your snippets, or make/accept a friend request, that all uses the same id

  • [removed] 10 months ago
    [deleted]
monroewalker 10 months ago

Can we have Arc added to the title of the post to better alert people who use or know people who use the browser?

  • gcr 10 months ago

    Huge agree. I didn’t realize this applied to me the first time I saw this story yesterday. It was the rename that got me to click.

    Honestly I strongly feel the title should be “fundamental bug in Arc browser (CVE 123-4567)” or similar.