Close Menu
Altcoin ObserverAltcoin Observer
  • Regulation
  • Bitcoin
  • Altcoins
  • Market
  • Analysis
  • DeFi
  • Security
  • Ethereum
Categories
  • Altcoins (1,175)
  • Analysis (1,376)
  • Bitcoin (1,950)
  • Blockchain (1,130)
  • DeFi (1,340)
  • Ethereum (1,337)
  • Event (50)
  • Exclusive Deep Dive (1)
  • Landscape Ads (2)
  • Market (1,380)
  • Reddit (602)
  • Regulation (1,285)
  • Security (1,846)
  • Thought Leadership (1)
  • Uncategorized (3)
  • Videos (39)
Hand picked
  • Cannes Goes Crypto: 90% of Merchants to Accept Bitcoin & More by Summer, Says City Council
  • Hedera unveils a studio AI for building nurse confidence applications
  • Altcoins are rallying like dives on the domination of Bitcoin: ETH, XRP, DOGE DOGE
  • BTC, ETH, XRP, BNB, SOL, DOGE, ADA, SUI, LINK, AVAX
  • Tether buys $ 458 million bitcoin dollars for the rival strategy twenty-one capital
We are social
  • Facebook
  • Twitter
  • Instagram
  • YouTube
Facebook X (Twitter) Instagram
  • About us
  • Disclaimer
  • Terms of service
  • Privacy policy
  • Contact us
Facebook X (Twitter) Instagram YouTube LinkedIn
Altcoin ObserverAltcoin Observer
  • Regulation
  • Bitcoin
  • Altcoins
  • Market
  • Analysis
  • DeFi
  • Security
  • Ethereum
Events
Altcoin ObserverAltcoin Observer
Home»Ethereum»Bogues of the Solidey Storage Matrix | Ethereum Foundation Blog
Ethereum

Bogues of the Solidey Storage Matrix | Ethereum Foundation Blog

January 27, 2025No Comments5 Mins Read
Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
Eth org.jpeg
Share
Facebook Twitter LinkedIn Pinterest Email


BUG announcement from the Solidity storage matrix

This blog article concerns two storage berries that, otherwise, would not be linked. The two have been present in the compiler for a long time and have only been discovered now even if a contract containing them should most likely show dysfunctions in the tests.

Daenam Kim with the help of Nguyên Phamboth Curve grid Discovered a problem where non -valid data is stored in relation to signed whole tables.

This bug has been present since Solidey 0.4.7 and we consider it the most serious of the two. If these tables use negative integers in a certain situation, this will lead to corruption of data and the bug should therefore be easy to detect.

Thanks to the Ethereum Bug Bounty program, we received a report on a flaw in the new experimental encoder ABI (called Abiencoderv2). The new ABI encoder is still marked as an experimental, but we nevertheless think that it deserves an important announcement since it is already used on the main network. Credits to Ming Chuan Lin (from https://www.secondstate.io) For having discovered and corrected the bug!

THE version 0.5.10 Contains bug fixes. For the moment, we are not planning to publish a corrective for the old 0.4.x of Solidey series, but we could if the general request is felt.

The two bugs should be easily visible in tests that affect the relevant code paths.

Details on the two bugs can be found below.

Bug of signed whole table

Worried

If you have deployed contracts that use whole tables signed in storage and you attribute directly

  • a literal table containing at least one negative value (X = (-1, -2, -3);) Or
  • an existing table of a different Signed whole type

This would cause data corruption in the storage matrix.

Contracts that only attribute individual table elements (that is to say with x (2) = -1;) are not concerned.

How to check if the contract is vulnerable

If you use whole tables signed in storage, try to perform tests in which you use negative values. The effect should be that the real stored value is positive instead of negative.

If you have a contract that meets these conditions and want to check if the contract is actually vulnerable, you can contact us via safety@ethereum.org.

Technical details

Storage berries can be assigned from bays of different types. During this copy and assignment operation, a type conversion is carried out on each of the elements. In addition to the conversion, especially if the signed whole type is less than 256 bits, certain value bits must be zero for the storage of several values ​​in the same storage location.

The bits to be zero have been poorly determined from the source and not of the target type. This leads to the zero of too many bits. In particular, the sign bit will be zero which makes the value positive.

Abiencoderv2 table bug

Worried

If you have deployed contracts that use the Abi V2 experimental encoder, they could be assigned. This means that only contracts that use the following directive in the source code can be affected:

pragma experimental ABIEncoderV2;

In addition, there are a number of conditions for the bug to be triggered. See the technical details below for more information.

How to check if the contract is vulnerable

The bug only manifests itself when all the following conditions are met:

  • The storage data involving tables or structures are sent directly to an external function call, for Abi. Encoder or event data without prior assignment to a local variable (memory) and
  • These data contain either a table of structures, or a table of static tables (that is to say at least two-dimensional).

In addition, in the following situation, your code is not affected:

  • If you only return this data and do not use it Abi. EncoderExternal calls or event data.

Possible consequences

Naturally, any bug can have very variable consequences depending on the program control flow, but we expect it to be more likely to lead to dysfunction than to exploitability.

The bug, when triggered, will send in certain circumstances corrupt parameters during methods of methods towards other contracts.

Technical details

During the coding process, the experimental abi encoder does not properly advance towards the following element in a table in case the elements occupy more than one storage location.

This is only the case for elements which are structures or tables of static size. Tables of dynamic size tables or basic data types are not affected.

The specific effect you will see is that the data is “offset” in the coded table: if you have a table of type Uint (2) () And it contains the data
((1, 2), (3, 4), (5, 6))So he will be coded as ((1, 2), (2, 3), (3, 4)) Because the encoder advances only from a single location between the elements instead of two.

This post was written jointly by @Axic, @chriseth, @Holiman



Source link

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleRipple CEO Brad Garlinghouse Lashes Out at Bitcoiners – “Slow Weekend…”
Next Article ZachXBT Reveals Details of $29 Million SUI Token Theft

Related Posts

Ethereum

$ 1.2 billion in Ethereum withdrawn from CEX – strong accumulation signal

May 14, 2025
Ethereum

Vaneck to compete with BlackRock in the race for American treasury, launched on Ethereum, BNB, Solana, Avalanche

May 14, 2025
Ethereum

Announcement of the Safety Initiative for billions of dollars

May 14, 2025
Add A Comment
Leave A Reply Cancel Reply

Single Page Post
Share
  • Facebook
  • Twitter
  • Instagram
  • YouTube
Featured Content
Event

Super Vietnam 2025: Where Blockchain, AI, and Innovation Converge in Southeast Asia’s Rising Tech Powerhouse

May 13, 2025

Vietnam is riding a powerful wave of technological innovation, and Super Vietnam 2025 arrives at…

Event

Istanbul Blockchain Week 2025 Is Back: The Future of Web3 Unfolds in Turkey’s Innovation Hub

May 13, 2025

Leading Web3 marketing agency EAK Digital with official media partner Altcoin Observer is proud to…

1 2 3 … 45 Next
  • Facebook
  • Twitter
  • Instagram
  • YouTube

Altcoins are rallying like dives on the domination of Bitcoin: ETH, XRP, DOGE DOGE

May 14, 2025

The company listed at Low Cap, listed in Nasdaq reveals a fundraising plan of $ 300,000,000 to acquire the crypto, including Trump token of the president: report

May 14, 2025

Morgan Stanley’s crypto chief leaves to launch an investment company focused on deffi

May 14, 2025
Facebook X (Twitter) Instagram LinkedIn
  • About us
  • Disclaimer
  • Terms of service
  • Privacy policy
  • Contact us
© 2025 Altcoin Observer. all rights reserved by Tech Team.

Type above and press Enter to search. Press Esc to cancel.

bitcoin
Bitcoin (BTC) $ 103,539.74
ethereum
Ethereum (ETH) $ 2,603.35
tether
Tether (USDT) $ 1.00
xrp
XRP (XRP) $ 2.56
bnb
BNB (BNB) $ 651.90
solana
Solana (SOL) $ 176.73
usd-coin
USDC (USDC) $ 1.00
dogecoin
Dogecoin (DOGE) $ 0.233444
cardano
Cardano (ADA) $ 0.800179
tron
TRON (TRX) $ 0.277088