The sun fixes lunch box smells better than anything you can buy
Baking soda and sunlight will fix most lunch box smells, and sunlight is the one people skip.
For plastic: wash it well with hot soapy water, then make a paste of baking soda and water and scrub the inside. Rinse it, dry it, then set it outside in direct sun for a few hours. The UV light actually breaks down the odor molecules. This works ridiculously well. If the lid has a rubber seal, wipe that down too — a lot of lingering smell hides in the gasket.
For fabric: wash it on hot with a cup of baking soda added to the load. If that doesn’t kill it, use an enzymatic cleaner (the kind you use for pet stains) — food odors are organic, and enzymes eat them. Air-dry in the sun, don’t use the dryer, because heat can bake the smell in permanently.
One thing to avoid: masking the smell with spray or dryer sheets. That just layers perfume on top of rot and the smell comes back the moment it fades. Also avoid vinegar for fabric — it can leave a smell of its own that lingers weirdly.
If it still stinks after a proper wash and a full day in the sun, the smell has bonded into the material. At that point, just replace it — this is not where you save six bucks.
