
Bug huntoor, prevented $1B+ in exploits GoLang | Rust | Move | C++ | Solidity For Booking DM on tg - @only01Essential
analyzer
Joined December 2022
- Tweets1.3K
- Following90
- Followers2.9K
- Likes5K
Hot take:
If you’ve found a vulnerability in a company that doesn’t run a public bug bounty program, you can still request a payout through @HackenProof
Boost your HackenProof rank and skip the payout headaches. We’ll handle the entire process, making it as simple as possible for both you and the company.
I just earned $3,500 for a bug report on @HackenProof plus another $2,000 for a bug report off bb platforms
Essential retweeted
We really appreciate all you have done to support us and the wider community @only01Essential
Essential retweeted
And here I am, having reported vulnerabilities throughout my career that could have resulted in a total of several billions (yes, with a B, > $2B) being *stolen*, while my total earnings are around $2M.
So what's the lesson the industry is teaching researchers?
That next time we should steal the funds first, then negotiate a "responsible disclosure," return 80–90%, and walk away with 10–20%?
Obviously, no. But it's insane that the incentives can make that rhetorical question even possible.
The bounty world is broken.
Blackhats exploit a protocol and get treated like kings in negotiations. Meanwhile, whitehats disclose the exact same kind of vulnerability privately, prevent any damage from happening, and then spend months arguing with projects that try to downgrade the finding and pay the bare minimum.
I'm fighting several cases like this right now. Millions of dollars protected, vulnerabilities responsibly disclosed, and yet projects still don't want to pay the amounts they themselves advertised.
We should be making responsible disclosure the overwhelmingly obvious choice.
Instead, the current state of Web3 is doing its absolute best to discourage whitehats while creating increasingly attractive incentives for blackhats and "grayhats".
Those incentives are backwards, and eventually the ecosystem pays the price.
i hate security disclosure so much. the number of companies that take our work for granted is insane. how about you talk to us collaboratively from the start instead of being asinine about it?
like, give us some respect, bro. we worked on this shit for weeks/months and showed you something that could have become a massive disaster if a bad guy finds it, and you don’t even seem to give a fuck and see us like some villains?
Essential retweeted
Heads up for anyone writing Rust today.
The Rust Security Response Team just disclosed a supply chain attack. The popular arrayref crate was republished to pull in a malicious dependency that downloaded a payload through its build script.
arrayref isn't obscure. If you or your dependencies pulled it recently, you'll want to check now.
The malicious versions to look for:
> arrayref 0.3.10
> internment 0.8.7
> append-only-vec 0.1.9
> proc-macro1, plus typosquats: proc-macro-en, aovine, arone, aronenao, tinymember
All deleted from crates.io, and the maintainer's account is locked. The team believes the author's credentials were compromised rather than the author acting maliciously.
Full advisory, including the one-line command to scan your local cargo cache:
blog.rust-lang.org/2026/08/2…
Full Episode: youtu.be/BPkLUdMcPLY?si=eqT0…
Essential retweeted
My entire ethos of hunting has been to find only Critical and Highs but every now and then I keep pumping on these but of all the lows I have found am most proud of this coz it came from very reputable project.
Shout out to @only01Essential for always being 1 call away
Essential retweeted
Replying to @injective
@injective is a sad joke.
How long can it survive without the **extremely underpaid** help of top white hats?
**You should not submit bugs to them** unless you want to be equally mistreated.
That sort of behaviour is damaging to all SRs and the entire industry, including all legitimate BBPs run by serious people who actually care about security.
Let’s see:
Ignored critical LOSS OF FUNDS for 3 months.
Attempt to classify COSMOS bug as WEB. 😂
Claims impact is misleading but cant provide specifics of how much money could be stolen. Try to say bug not being exploited is a problem for the report 😂
The “head of engineering” @bangjelkoski is just throwing technical nonsense at the issue and pretending it sticks. Is he even technical at all? Does he know what a bug bounty is? Doesn’t sound like it. Sounds like Chat-GPT from ‘23 making excuses.
How likely is it that this was the first critical Loss of Funds bug to go unnoticed? Id say 0% likelihood.
**I’d say extremely likely it wasn’t the last one either.** Again 0% likelihood its the last protocol-ending level bug.
But it will probably be the **last time they are helped by white hats.**
the figures referenced in the post are entirely misleading. There was no impact realized from this issue. Zero user funds were affected and zero addresses were compromised.
My response: Are you suggesting I should have actually exploited the bug and caused real damage before coming to talk to you?
For the stated vulnerability to work in practice, it would require execution of several suspicious transactions that would have an extraordinarily limited impact.
My response: You should know better than anyone that on a Cosmos-based chain, a single transaction can pack multiple messages. Just one transaction is more than enough to completely drain multiple whale accounts.
Injective has dynamic rate limiting functionalities which are applied automatically based on our live monitoring systems. This functionality has been live on mainnet since last year and is publicly available in our code base.
My response: First, this has nothing to do with the vulnerability itself. Rate limiting doesn't stop attackers from stealing funds. It only slows them down when they try to bridge those funds over to Ethereum. Second, when I submitted my report, the mainnet configuration for this feature was not set. In other words, this feature wasn't even turned on!
In addition to all of the above, this report was reviewed against the clearly defined terms of our Immunefi program. Based on those terms, issues such as those raised in this report that DO NOT impact block production or consensus are categorized outside of the Blockchain/DLT tier and carry a maximum payout of $50,000.
My response: First, Immunefi has always put the impact of direct fund theft at the very top of its priority list. This is a fact that everyone knows. Second, you changed your bug bounty page after I submitted my report. Here’s the snapshot from November 8, 2025: web.archive.org/web/20251108… . And now, there’s an extra line added to your bug bounty page: “IMPORTANT: Within the Assets in Scope table, the injective-core folder is listed for both Blockchain/DLT and Web/App due to overlap between the two within the same folder. However, for a report to be categorized as Blockchain/DLT, the resulting impact has to be directly involved with the block production process or with consensus failures. All reports not dealing directly with either of these are to be categorized as Web/App.” I’d really like to know when this line was added. and do you really value chain consensus more than users' funds?
We remain committed to fair, transparent, and consistent handling of all reports, and to maintaining the highest standards of security for the ecosystem. Injective has done so since its mainnet inception in 2021 and will continue to do so in perpetuity, always putting builders and security first.
My response: You never even replied to my messages, and now you’re blaming me for not requesting mediation? I can post the original report if you agree. I left many messages, but you haven't replied to a single one.
----------
Finally: Stop making excuses from every angle and trying to use technical jargon to confuse people who aren't developers. That doesn’t work anymore these days. Anyone can just ask an AI to fact-check what both of us are saying. I have no ill intentions toward your project. All I'm asking is for you to be honest and handle this transparently.
Essential retweeted
Replying to @aelfblockchain
@aelfblockchain I have tried reaching out on all channels but you guys are not responding. on tg you view my messages but don't respond to them.
You guys are starting to seem malicious rn, you've had my reports for more than two months now, you haven't responded to me or @xyz_remedy
Please do the needful. If i had drained funds i bet I'll not be begging for you guys attention
Essential retweeted
‼️‼️‼️
A popular smart contract that had been live for over 5 years was exploited today, with over $26m being stolen.
No approved user funds were stolen in this hack, so there is no need to revoke.
Having said that, this is a great reminder to make sure to go over your approvals and revoke any that you no longer need.
Start 2026 fresh, without any token approvals 🫡
Essential retweeted
Very cool of Yearn having all past security disclosures, including bounties and other events.
All projects should follow along.
github.com/yearn/yearn-secur…
Essential retweeted
Post-Mortem Analysis of the yETH Exploit - 1 December 2025
github.com/yearn/yearn-secur…
Essential retweeted
yETH Exploit Deep Dive
After spending some time exploring the recent yETH exploit, I quickly realized that it's easily one of the most sophisticated attacks I've ever seen. In fact, it was so complicated that every writeup I read misunderstood at least some part of the attack. This complexity provides for some serious alpha to developers and security researchers who can thoroughly understand the attack, so don't just bookmark this, let's dive in.
Hybrid AMM Curve
To understand this exploit, we first need to understand the underlying mechanism of the protocol. The yETH pool uses an invariant which is a hybrid between constant product and constant sum. If you're familiar with the inner workings of Uniswap, you should be familiar with the constant product behavior, essentially it just adjusts the price according to the reserves. Whereas constant sum results in a constant price between the tokens, regardless of reserves. The yETH hybrid curve behaves like a constant sum when the token reserves are balanced, keeping the price constant, and behaves like a constant product curve when the reserves are imbalanced. This behavior is valuable for pools of assets which have the same value due to the fact that the price is much less sensitive to reserve changes.
Below we have a graph [1] of these different curves. Red: constant product, green: constant sum, blue: hybrid used by the yETH pool.
The First Bug: Breaking The Invariant
Let's zoom in on the `_calc_supply` function. This function uses an iterative approximation to converge to a new supply and constant product term at each iteration, ending the loop once sufficient precision is achieved.
The constant product term (r) is recomputed at each iteration as the current value multiplied by the new supply, divided by the previous supply (`r * sp / s`). Effectively, it scales at the same rate as the supply.
The bug: if the decrease in supply of any given iteration of the solver is large enough, the constant product term can round down to zero. There is no revert to handle this case and once it occurs, each following iteration will remain zero since `0 * x / y = 0`.
Now that we have a zero constant product term, we no longer have a hybrid constant product/constant sum curve, instead we effectively just have a constant sum curve. To understand why this is a problem we have to go back and look at the curves. In the below graph [2], we have the intended curve (red) and the constant sum curve (purple) which is the result of the zero product term.
As we adjust the supply (see desmos graph [2] linked in reply) of these two curves (D), we can see that the reserves increase by the same amount in the middle, where the reserves are balanced, but by different amounts on the outside, where the reserves are imbalanced. This means that as we add/remove liquidity with imbalanced reserves, these two curves will mint/burn a different amount of LP tokens.
Understanding this behavior, the attacker systemically switched between these curves by triggering the zero constant product term when adding liquidity with unbalanced reserves to receive more LP tokens than intended. They then resolved the constant product term back to normal during liquidity removal to receive the correct amount of tokens provided for burning the inflated amount of LP tokens they received. This allowed the attacker to withdraw more tokens than they deposited, which they repeated until the pool was drained of its reserves for a profit of about ~$8m.
The Second Bug: Unexpected Underflow
You thought we were done? Nope, there's yet another bug that the attacker exploited to steal even more funds after already completely draining the pool.
Now that the pool is empty, and variables used for accounting are in such an unusual state, there is a significant side effect which occurs when we attempt to deposit certain dust amounts. Again, looking in the `_calc_supply` function, when we iteratively recompute the supply, we compute it with the following line (`(l - s * r) / d`):
Since we use unchecked math here and the accounting is in a highly irregular state, it's unexpectedly possible for `s * r > l`, resulting in the computed supply underflowing. The attacker exploits this underflow by depositing the following amounts: `[1, 1, 1, 1, 1, 1, 1, 9]`, resulting in them being minted `~2.6*10^56` yETH LP tokens. The attacker then makes a swap on the curve yETH/WETH pool, draining the pool of its WETH, for a profit of ~$1m.
Conclusion
Not only did this attack include a highly sophisticated AMM invariant exploit, but it also exploited an underflow which is likely only possible due to the existence of the invariant exploit. This combination of exploits allowed the attacker to not only drain the yETH pool, but also another pool containing the LP token. Both attacks, and even tornado cash deposits were all made in the same transaction, preventing any chance at rescue.
In my research, every writeup I came across misunderstood this attack in some way. Clearly, it's extremely rare to understand such a sophisticated exploit, providing for some serious alpha to developers and security researchers to fully wrap their heads around this.
Essential retweeted
Replying to @Ehsan1579
You can find programs at bbradar.io across many platforms, I also made a request to Immunefi for adding average payout times to programs so that researchers can avoid "slow" protocols .
Essential retweeted
Quick Security Research Wins on Immunefi!
Some familiar names on this list like @alexfilippov314, @bronze_pickaxe, and @only01Essential.
Well done for keeping the ecosystem secure.
Every bit matters.
Essential retweeted
On August 25th, a @cantinaxyz researcher reported a critical vulnerability in Panoptic’s logic that could have enabled attackers to drain funds from PanopticPools by spoofing position lists. We acted to safeguard funds. All funds are safe and will be available for reclaiming soon.
The key to the vulnerability is in Panoptic’s position fingerprinting. We use this fingerprint when users take actions that affect their account’s liquidatability, to verify that we accurately reflect their actual positions.
If you can lie to the contracts about what positions you hold, you can drain the protocol. This lying is indeed possible in Panoptic v1/v1.1 due to i) insecurities with XORing together hashes to a target output, and ii) a lack of validity checks on user-supplied position lists.
After confirming the vulnerability, we immediately initiated a 72-hour emergency response with @seal_911, notifying users to withdraw funds, successfully coordinating the voluntary withdrawal of over $4 million, and executing a white-hat rescue operation that secured more than 98% of the remaining at-risk funds.
All rescued funds have been transferred to vault.panoptic.eth and will be fully returned to users through a Merkle-root claim system. No user funds were lost.
Essential retweeted
Nice work! Keep grinding! 🚀
I just had my first confirmed bug report @HackenProof
I was looking for diamond, but found bronze, still grinding for that next crit 💪





































