最近、C/C++ ランタイム ライブラリ (RTL) に潜在的なバッファオーバーフローがあることが判明しました。この問題は1997年に実装されたコードに起因しており、実装されてから現在に至るまで悪用された事例はありませんが、安全性と公開性を確保するため、このブログでは慎重に問題箇所の開示とその修正方法をご案内いたします。 バッファオーバーフローの問題に関する情報: _wgetcurdir、_wsearchstr、および「_t」バリアントの _tgetdcwd と _tgetcwd に影響します。これらのメソッドは、現在の作業ディレクトリを取得するもので、POSIX getcwdに基づく非ISO標準関数、またはワイド文字向けに拡張された、それらを使用して解決できるマクロです。 Unicodeのビルドに影響 これらのメソッドがバッファとして null が渡されたときにのみ発生します。この状況で
![C/C++のRTLにおけるバッファオーバーフロー](https://cdn-ak-scissors.b.st-hatena.com/image/square/ccee0979286841c33848aea858b6cb40b564b981/height=288;version=1;width=512/https%3A%2F%2Fblogs.embarcadero.com%2Fwp-content%2Fuploads%2F2020%2F09%2Fcppgmupdate.jpg)