Cameron van der Burgh of South Africa won the gold medal and set a world record in the 100m breaststroke at London 2012, but has since admitted to cheating after the Austrialian swim team accused him of taking more dolphin kicks than allowed by the rules.
The individual Federations, in this case FINA, make all decisions of this nature, not the IOC. Only FINA could strip someone of a medal, following whatever rules they have for the particular situation. As noted, the appeal period has passed so this result will stand according to the rules that all FINA sanctioned events are run under.
As part of the requirements to be considered an Olympic sport, all Federations must adhere to the rules around doping as stipulated by WADA. These are pretty tough, including the retrospective stripping of medals that goes far beyond most other forms of cheating or dubious actions.
For the record, in this situation the rules, or the enforcement of them, are to blame and not the athlete(s). van der Burgh is guilty only of excess honesty (and this is coming from an Australian). This is on par with say basketball players bending the rules on travelling but getting away with it due to a relaxed interpretation from the umpires. Is that cheating? I wouldn’t think so, it’s just optimising performance within the imposed constraints.