ProviderUtil in Log4j API is supposed to list the versions of the API that are all compatible with each other from a binding point of view. These versions are not supposed to be modified with each Log4j release but only when a change to the API is made so that implementations can know whether they are compatible with the API.
Likewise, each implemenation (such as Log4j core) is supposed to declare what version of the API it requires. Again, this is not implemented with each release but only when core is modified to require changes in the API.
The API changed significantly in releases prior to 2.6 but these values were never modified. Since 2.6 very little has changed in the API.
To fix this issue the API needs to say the only compatible version is 2.6 and log4j-core must declare that it requires version 2.6.