How to use solidity latest version with openzeppelin

I have imported openzeppelin's ERC20 contract into my own contract like the following,

// SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.13;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract GLDToken is ERC20 {
    constructor(uint256 initialSupply) ERC20("Gold", "GLD") {
        _mint(msg.sender, initialSupply);
    }
}

The used slither analyzer tool to validate the above contract. I am getting the following output,

Different versions of Solidity is used:
- Version used: ['0.8.13', '^0.8.0']
- 0.8.13 (contracts/GLDToken.sol#3)
- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol#4)
- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol#4)
- ^0.8.0 (node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#4)
- ^0.8.0 (node_modules/@openzeppelin/contracts/utils/Context.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

From the above statments I am having the following doubts,

  1. Can we use different solidity version?
  2. How to use latest solidity version when using openzeppelin? Because highest version in openzeppelin is 0.8.0

Yes, I think so.

I think in order to make good backward compatibility, they use ^0.8.0, and this means you can use any versions of the 0.8.x.

It seems like you used Slither to analyze your contracts, so it threw out this error. In deed, we are recommended to specify the Solidity version, but just like I said above, for compatibility, they use pragma solidity ^0.8.0; rather than pragma solidity 0.8.0;, and I do not think they have a version use 0.8.13.